在 Groovy 中,有一个很好的语法来处理空值。
例如,我可以做一个 if 语句:
if (obj1?.obj2?.value) {
}
这不会抛出 NullPointerException,即使 obj1 为 null(它的计算结果为 false)。
这是非常方便的东西,所以想知道是否有我错过的 Ruby 等价物。
最佳答案
在 Rails 应用程序中有 Object#try
所以你可以这样做
obj1.try(:obj2).try(:value)
或者用一个 block (如下面的评论所述)
obj.try {|obj| obj.value}
更新
在 ruby 2.3 中有这样的运算符:
obj&.value&.foo
这与 obj && obj.value && obj.value.foo
相同
关于ruby - Ruby 是否有 nil 值的安全导航运算符的语法,就像在 Groovy 中一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164004/