Hash#fetch
返回给定键的哈希值。
它还接受一个可选块:
h = { "a" => 100, "b" => 200 }
h.fetch("a") #=> 100
h.fetch("z", "go fish") #=> "go fish"
h.fetch("z") { |el| "go fish, #{el}"} #=> "go fish, z"
可以假设一个块将帮助我们处理与给定密钥相关的值。但是,该块似乎产生了键而不是值(参考上面fetch
的第三次调用)。
这种实施有什么用?我没有看到key
被传递到街区的任何一点,因为它已经知道了;它是人们感兴趣的value
,这可以通过致电fetch
来证明。
更新:这是无效的问题,我误读了文档。道歉
答案 0 :(得分:5)
该块用于处理缺失值 - 由于没有值,因此不会产生该值。
您应该使用密钥返回合适的值(或在适当时提出异常)