Tag: 安全导航操作员

为什么Ruby使用自己的语法来安全导航操作符?

Ruby 2.3.0引入了安全的导航语法 ,通过引入一个仅在前一个语句的值不为nil时调用该方法的新运算符,简化了对链式方法调用的零处理。 这是一个已经存在的function,例如在C#,Groovy和Swift中。 例如在Groovy中 ,语法是 foo?.bar 这基本上意味着结果值是foo.bar的结果值,除非foo为null ,在这种情况下返回值也为null ,因此不会抛出exception。 此外, C# (称为空条件运算符 )和Swift (称为可选链接表达式 )使用此表示法。 所以语法似乎在其他语言中非常标准。 现在,为什么在Ruby中语法是 foo&.bar 代替?

安全导航操作员(&。)为零

由于Ruby 2.3引入了安全导航操作符( &. ),也就是孤独运算符,所以nil对象上的行为似乎很奇怪。 nil.nil? # => true nil&.nil? # => nil 这样设计的行为是这样吗? 或者在添加孤独运算符时滑落的边缘情况?