它们在if/else/end声明中使用时是否相同?你平常都做什么?我想知道是否存在任何微妙的差异或边缘情况,object并且!object.nil?会有不同的反应.
Mar*_*pka 30
有区别.例如:
false.nil?
# => false
Run Code Online (Sandbox Code Playgroud)
所以:
if !false.nil?
'foo'
end
# => "foo"
if false
'foo'
end
# => nil
Run Code Online (Sandbox Code Playgroud)
正如@tokland建议的那样,在大多数情况下使用!obj.nil?结构是不必要的.
Chr*_*bek 13
有一个和仅一个案件!object.nil?,并object评估在布尔上下文不同的结果,那就是,如果object是false.在所有其他情况下,结果是相同的.
有了这个,我想我们可以回答你真正的问题(这是:有什么情况我必须使用if !object.nil?而不仅仅是if object在防止object为零时?):
不,if object如果您想要检查,您可以随时使用nil.
| 归档时间: |
|
| 查看次数: |
36962 次 |
| 最近记录: |