在纯ruby脚本中我有这个:
result = JSON.parse result.body_str
count = result && result["ke1"] && result["ke1"]["key2"] && result["ke1"]["key2"]["key3"] && result["ke1"]["key2"]["key3"]["key4"] ?
result["key1"]["key2"]["key3"]["key4"].to_i :
123
Run Code Online (Sandbox Code Playgroud)
有什么方法可以简化这个吗?
count = result["key1"]["key2"]["key3"]["key4"].to_i rescue 123
Run Code Online (Sandbox Code Playgroud)
如果你想制作一个更好的可读性的私有方法,你可以做到
def count(result)
result["key1"]["key2"]["key3"]["key4"].to_i
rescue NoMethodError
123
end
Run Code Online (Sandbox Code Playgroud)
我添加NoMethodError来限制救援可以吞下的错误.尽管有关使用流量控制异常的争论,但我更喜欢这种方法以提高可读性.在一个小功能或一个衬管中,它在技术上甚至不会改变流量,因为它们都保留在一个位置.
如果在具有数百万条记录的紧密循环中使用它,您可能希望使用分析器与其他解决方案进行比较,但您必须根据实际使用情况进行调用.如果在一些可能每天运行5次的代码上使用它,请坚持使用更容易阅读和维护的代码.
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |