如何在同一个键中添加多个值?像这样的东西:
x = {}
x["k1"] = nil
x["k1"] << {"a" => "a"}
x["k1"] << {"b" => "b"}
Run Code Online (Sandbox Code Playgroud)
好吧,这不像数组一样工作.
Aru*_*hit 17
你可以这样做:
对于Array作为价值的关键Hash:
h = Hash.new{|hsh,key| hsh[key] = [] }
h['k1'].push 'a'
h['k1'].push 'b'
p h # >> {"k1"=>["a", "b"]}
Run Code Online (Sandbox Code Playgroud)
对于Hash作为价值的关键Hash:
h = Hash.new{|hsh,key| hsh[key] = {} }
h['k1'].store 'a',1
h['k1'].store 'b',1
p h # >> {"k1"=>{"a"=>1, "b"=>1}}
Run Code Online (Sandbox Code Playgroud)
取决于你在这里想要完成的事情.如果你想要一个数组哈希,这很容易:
x = {}
x['k1'] = Array.new
x['k1'] << 'a'
x['k1'] << 'b'
Run Code Online (Sandbox Code Playgroud)
或者如果你想要嵌套的哈希,也很简单
x = {}
x['k1'] = {}
x['k1']['a'] = 'a'
x['k1']['b'] = 'b'
Run Code Online (Sandbox Code Playgroud)
哈希中的值只是对象.它们可以是数组,其他哈希,或者您可能想要的任何其他内容.