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