【问题标题】:Differences between the ruby 2.3 safe operator "&." and CoffeeScript existential operator ".?"ruby 2.3 安全运算符“&”之间的区别。和 CoffeeScript 存在运算符“.?”
【发布时间】:2016-03-18 15:07:43
【问题描述】:

ruby 2.3 安全运算符 &. 和 CoffeeScript 存在运算符 .? 之间有什么区别(如果有的话)

【问题讨论】:

  • 新的安全操作符是&.,它可能会在Ruby 2.2.3中引入
  • 2.3 已经公​​布:getpocket.com/a/read/1129842696
  • 是的,你是对的。我记错了。

标签: ruby syntax coffeescript


【解决方案1】:

CoffeeScript 的存在运算符 ? 返回 true,除非变量 是 null 还是 undefined,这类似于 Ruby 的 nil?

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

类似这样的:

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

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

变成:

obj&.method1&.method2

if obj&.method1
  #...
end

参考文献:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 2015-12-09
    • 2016-05-18
    • 2011-10-22
    • 2012-10-06
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    相关资源
    最近更新 更多