Ruby 类是否有可能实现一个真实性方法,或者除了 false 和 nil 之外的所有对象是否都被设计为自动为 true?
问问题
134 次
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
除了false
and nil
(包括 0,它有时会使来自其他语言的人感到困惑)之外的所有内容都是真实的。
于 2013-11-14T09:23:29.837 回答