gpt4 book ai didi

oop - 您可以在没有if语句的情况下编写任何算法吗?

转载 作者:行者123 更新时间:2023-12-03 08:50:15 25 4
gpt4 key购买 nike

这个站点激发了我的幽默感-http://www.antiifcampaign.com/,但是在您使用if语句的所有情况下,多态都能起作用吗?

最佳答案

Smalltalk被认为是“真正的”面向对象的语言,没有“if”语句,也没有“for”语句,没有“while”语句。还有其他示例(例如Haskell),但这是一个很好的例子。

引用Smalltalk has no “if” statement:

Some of the audience may be thinking that this is evidence confirming their suspicions that Smalltalk is weird, but what I’m going to tell you is this:

An “if” statement is an abomination in an Object Oriented language.



为什么?好吧,OO语言是由
类,对象和方法,以及
“if”陈述不可避免地没有
那些。您不能在“
OO方式。它不应该存在。
有条件的执行,就像一切
否则,应该是一种方法。一种方法
什么? bool(boolean) 值。

现在,很有趣的是,在Smalltalk中,
bool(boolean) 有一个称为
ifTrue:ifFalse:(该名称看起来
现在很奇怪,但是要通过
现在)。它是 bool(boolean) 型的抽象形式,但是
bool(boolean) 值有两个子类:True和
假。该方法传递两个块
代码。实际上,该方法只是
为真实情况运行代码。在
错误,它将运行错误代码
案件。这是一个希望的例子
解释:
(x >= 0) ifTrue: [
'Positive'
] ifFalse: [
'Negative'
]

您应该能够看到ifTrue:和
ifFalse:在那儿。不用担心
他们不在一起。

表达式(x> = 0)的计算结果为
对或错。说的是真的,那么我们
有:
true ifTrue: [
'Positive'
] ifFalse: [
'Negative'
]

我希望这很明显
会产生“正数”。

如果错误,我们将:
false ifTrue: [
'Positive'
] ifFalse: [
'Negative'
]

产生“负”字。

好的,就是这样。怎么了
很好吗?好吧,还有什么
语言你能做到吗?更多
认真地,答案是那里
在这没有什么特殊情况
语言。一切都可以在一个
OO方式,一切都在
OO方式。

我绝对建议您阅读同一作者的全文和 Code is an object

关于oop - 您可以在没有if语句的情况下编写任何算法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com