ruby - .? ruby 中的(存在)运算符?

标签 ruby null

Ruby 中是否有 .? 运算符在调用对象的方法之前检查对象是否为 nil

例如,如果我必须编码:

if person and person.neighbor and person.neighbor.house and person.neighbor.house.rooms
    person.neighbor.house.rooms.each do |room|
        blah
    end
end

有没有比必须对所有内容进行 if 检查更好的方法?

并且请不要说“以这些对象永远不能为 nil 的方式编写代码”,我正在从 API 调用中获取这些内容,但无法控制它。

最佳答案

从 Ruby 2.3.0 开始,&.“安全导航”运算符就是这样做的。所以不是

person 和 person.neighbor 和 person.neighbor.house 和 person.neighbor.house.rooms

你现在可以做

person&.neighbor&.house&.rooms.

http://mitrev.net/ruby/2015/11/13/the-operator-in-ruby/

关于ruby - .? ruby 中的(存在)运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660126/

相关文章:

ruby - 从数组和频率创建散列

html - 使用 Nokogiri 解析 HTML(不遵循 HTML 语义)

flutter - Flutter:失败的断言: bool 表达式不能为空

c++ - 使 C++ 将指向 NULL 的指针解释为零

Ruby 从哈希表中弹出一个元素?

css - Rails Bootstrap 字形图标

c# - 如何在C#中将对象与null进行比较

MySQL外键允许NULL?

mysql - 如何更改原始数据类型的默认值

ruby - 用 Ruby 渲染笛卡尔网格和点的最简单方法?