ruby2.0 以前,像下面的方法 如果 hash 为 nil 直接爆掉!
def test_nil_to_hash(hash)
hash["follow"]
end
test_nil_to_hash({"follow" => "me"}) #=> "me"
test_nil_to_hash(nil) #=> undefined method `[]' for nil:NilClass (NoMethodError)
我们要避免抛出 NoMethodError 一般会这么写:
def test_nil_to_hash(hash)
(hash || {})["follow"]
end
test_nil_to_hash(nil) #=> nil
从 ruby2.0 开始增加了Nil#to_h方法, (hash || {}) 这种写法成为历史啦!
def test_nil_to_hash(hash)
hash.to_h["follow"]
end