红宝石2.3安全操作员“&”之间的差异。和CoffeeScript存在运算符“。?”

时间:2015-12-12 21:03:10

标签: ruby syntax coffeescript

ruby​​ 2.3安全操作符&.与CoffeeScript存在操作符.?

之间的差异(如果有)

1 个答案:

答案 0 :(得分:6)

  

除非变量,否则CoffeeScript的存在运算符?将返回true   是null还是未定义,这使得它类似于Ruby的nil?

相反,新的Ruby安全导航操作符&.用于调用Object的方法,该方法可以nil而不会引发异常。如果对象不是nil,则执行该方法;否则,它返回nil

这样的事情:

obj.try!(:method1).try!(:method2)

if obj && obj.method1
  #...
end

变为:

obj&.method1&.method2

if obj&.method1
  #...
end

参考文献: