gpt4 book ai didi

ruby - Ruby 是否有 nil 值的安全导航运算符的语法,就像在 Groovy 中一样?

转载 作者:数据小太阳 更新时间:2023-10-29 06:29:44 25 4
gpt4 key购买 nike

在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com