.?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
Run Code Online (Sandbox Code Playgroud)
有没有比检查一切更好的方法?
并且请不要说"代码以这些对象不可能的方式nil",我从API调用获取这些东西并且无法控制它.
从Ruby 2.3.0开始,&."安全导航"操作符就是这样做的.而不是
person and person.neighbor and person.neighbor.house and person.neighbor.house.rooms
你现在可以做到
person&.neighbor&.house&.rooms.
http://mitrev.net/ruby/2015/11/13/the-operator-in-ruby/
| 归档时间: |
|
| 查看次数: |
1515 次 |
| 最近记录: |