【发布时间】:2016-10-07 08:37:55
【问题描述】:
我知道我们可以创建如下哈希的哈希:
Hash.new{|hash, key| hash[key] = Hash.new}
但我不明白键和值是否被转换为哈希。有人可以简要解释一下吗?
【问题讨论】:
-
你可以查一些docs
-
我不明白你的问题。你有什么不明白的?
我知道我们可以创建如下哈希的哈希:
Hash.new{|hash, key| hash[key] = Hash.new}
但我不明白键和值是否被转换为哈希。有人可以简要解释一下吗?
【问题讨论】:
如果你以这种方式定义hash,ruby 会将 hash 中每个键的默认值设置为新的 hash 并保存。
样本
h = Hash.new{|hash, key| hash[key] = Hash.new}
h[:foo]
# => {}
p h
# => {:foo=>{}}
只定义默认值
h = Hash.new({})
h[:foo]
# => {}
p h
# => {}
【讨论】: