来自Ruby Koans about_hashes.rb
在访问散列键时,为什么要使用#fetch
而不是#[]
?
发布于 2013-05-16 00:12:56
使用[]
,散列的创建者控制当键不存在时发生的事情,而使用fetch
则控制。
发布于 2013-05-15 23:42:28
默认情况下,如果找不到键,fetch
会引发错误。您可以改为提供默认值。
h = {}
h.fetch(:foo) # no default value, raises error
# => # ~> -:3:in `fetch': key not found: :foo (KeyError)
h.fetch(:bar, 10) # default value, returns default value
# => 10
https://stackoverflow.com/questions/16569409
复制相似问题