1

Ruby 类是否有可能实现一个真实性方法,或者除了 false 和 nil 之外的所有对象是否都被设计为自动为 true?

4

3 回答 3

2

你的第二个问题的答案是:是的,除了false和之外的所有东西nil在 Ruby 中都被认为是“真实的”。

所以,例如

a = 'foo' if 0
# => "foo"
a = 'foo' if []
# => "foo"
a = 'foo' if ''
# => "foo"
a = 'foo' if nil
# => nil
a = 'foo' if false
# => nil
于 2013-11-14T09:23:55.293 回答
1

至少在 1.9.3 中,您可以控制!

$ irb
>> class C
>>   def !
>>     true
>>   end
>> end
=> nil
>> c = C.new
=> #<C:0x7b5b9cd6>
>> !c
=> true
>> !!c
=> false
>>
于 2013-11-14T09:34:26.187 回答
0

除了falseand nil(包括 0,它有时会使来自其他语言的人感到困惑)之外的所有内容都是真实的。

于 2013-11-14T09:23:29.837 回答