如果有的话,ruby 2.3安全操作符&.
和CoffeeScript存在操作符之间的区别是什么.?
?
除非变量为null或未定义,否则CoffeeScript的存在运算符返回true,这使得它类似于Ruby的nil?
相反,新的Ruby安全导航操作符&.
用于调用Object
可以nil
不引发异常的方法.如果对象不是nil
,则执行该方法; 否则,它返回nil
.
像这样的东西:
obj.try!(:method1).try!(:method2) if obj && obj.method1 #... end
变为:
obj&.method1&.method2 if obj&.method1 #... end
参考文献:
http://coffeescript.org/#lexical-scope
https://bugs.ruby-lang.org/issues/11537
http://irb.rocks/ruby-safe-operator/