我最近寻找一种在 Ruby 中正确创建和使用嵌套哈希的方法。我很快找到了 Paul Morie 的解决方案,他回答了自己的问题:
hash = Hash.new { |h,k| h[k] = {} }
我立即去使用它,并很高兴地报告它有效。然而,正如标题所说,我希望 “次要”、“内部”哈希值默认返回 0
。
我知道您可以在其构造函数(“Hash.new(0)
”)或使用
.default
(“
hash.default(0)
”)中定义哈希的默认返回值。但是如何使用散列内的散列来做到这一点?
显然我只需要做:
hash = Hash.new { |h,k| h[k] = Hash.new(0) }
哎呀。下次我会尽量不那么急于提问。
或者
hash = Hash.new(Hash.new(0))