【发布时间】:2016-04-07 14:16:05
【问题描述】:
由于 Ruby 2.3 引入了安全导航运算符 (&.),也就是孤独的运算符,nil 对象上的行为似乎很奇怪。
nil.nil? # => true
nil&.nil? # => nil
是这样设计的吗?还是在添加孤独的运算符时溜走的一些边缘情况?
【问题讨论】:
-
不清楚为什么你觉得奇怪。
-
为什么这比在 Rails 中使用
try更好? -
@Jwan622 我认为这是受到
try的启发。 -
@sawa 这很奇怪,因为在显然是
nil的东西上请求nil?(就像nil&.的结果)在逻辑上应该返回 true,就像nil.nil?一样 -
@sawa 问题是你实际上并没有在
nil&.的结果 上调用nil?,但它只是初始表达式nil && nil.nil?的一部分,在此评估中被忽略,因为该表达式的第一部分是nil并因此返回。请参阅 Oeste 的答案。
标签: ruby ruby-2.3 safe-navigation-operator