知道某些东西是否是布尔的最佳方法

时间:2011-04-07 15:07:22

标签: smalltalk

询问对象是否为布尔值的最佳方法是什么?

根据要求,原因如下:

我有一个方法可以打印东西,任何类型的东西,当这个东西是布尔值时,我希望它打印“是”或“否”而不是真或假。我是这样做的,但它看起来太像我了:

[anObject
    ifTrue: [ 'Yes' ]
    ifFalse: [ 'No' ] ] 
        on: Error 
        do: [ anObject printString ]

5 个答案:

答案 0 :(得分:5)

添加您自己的printString定义:

Object >> #bernatPrintString
  ^self printString

True >> #bernatPrintString
  ^'Yes'

False >> #bernatPrintString
  ^'No'

答案 1 :(得分:4)

anObject == true or: [ anObject == false ]

答案 2 :(得分:2)

value isKindOf: Boolean - 但我会避免这样的检查!如果你需要这样做,可能会有一些错误......

答案 3 :(得分:0)

什么可以更简单?

anObject isBoolean ifTrue:[...] ifFalse:[...]

答案 4 :(得分:-1)

更简单,最有效,无需避免:value class == Boolean