可能的复制品:
Ruby: IF 语句中的 Nils
有没有一种干净的方法可以避免在嵌套的 params hash 中对 nil 调用方法?
假设我试图访问这样的 hash:
my_hash['key1']['key2']['key3']
如果 key1、 key2和 key3存在于 hash (es)中,这很好,但是如果,例如 key1不存在呢?
然后我会得到 NoMethodError: undefined method [] for nil:NilClass
。没有人喜欢这样。
到目前为止,我是这样处理这个条件的:
if my_hash['key1'] && my_hash['key1']['key2']
...
这样做合适吗? 还有其他鲁比的方法吗?