Smalltalk - 有什么类似于来自C的&&?

new*_*bie 2 smalltalk operator-precedence

我必须编写一个纯对象Smalltalk程序,我需要在其中评估条件,直到其中一个失败.我知道在C中,我们可以使用&&运算符,并且只有在必要时才能对条件进行评估.

Smalltalk中有类似的东西吗?

Amo*_*ter 7

有条件的" "可以通过使用&消息或and:消息来实现.

firstBooleanExpression & secondBooleanExpression
    ifTrue: [ 'do something' ].
Run Code Online (Sandbox Code Playgroud)

使用&如上显示,条件的第二部分(secondBooleanExpression)而不管所述第一半是否评估为评估truefalse.

(firstBooleanExpression and: [secondBooleanExpression])
    ifTrue: [ 'do something' ].
Run Code Online (Sandbox Code Playgroud)

使用and:,另一方面,所述第二部分仅被评估,如果第一半的计算结果为true.通常你会使用这个表格,除非你明确想要评估下半部分.

同样的原则适用于or:.