Ruby自动创建深哈希

示例

哈希值是所请求但不存在的键的默认值(无):

a = {}
p a[ :b ] # => nil

创建新哈希时,可以指定默认值:

b =Hash.new'puppy'
p b[ :b ]            # => 'puppy'

Hash.new还包含一个代码块,该代码块使您可以自动创建嵌套的哈希,例如Perl的自动生存行为或mkdir -p:

# h是您要创建的哈希,而k是键。
#
hash =Hash.new{ |h, k| h[k] =Hash.new&h.default_proc }
hash[ :a ][ :b ][ :c ] = 3

p hash # => { a: { b: { c: 3 } } }