从这个 SO answer,我可以动态创建嵌套的哈希值:
hash = Hash.new{ |h,k| h[k] = Hash.new(&h.default_proc) }
例如:
hash = Hash.new{ |h,k| h[k] = Hash.new(&h.default_proc) }
hash['a']['b']['c'] = { 'key' => 'value' }
#=> {'a' => { 'b' => { 'c' => { 'key' => 'value' }}}}
到目前为止,一切都很好。
我需要这个:
hash = Hash.new{ |h,k| h[k] = Hash.new(&h.default_proc) }
hash['a', 'b', 'c'] = { 'key' => 'value' }
#=> {'a' => { 'b' => { 'c' => { 'key' => 'value' }}}}
我希望它保留层次结构中存在的任何其他散列值,并根据需要创建新的散列。
我对 ruby 中的元编程相当陌生,感谢 andy 的帮助。