【发布时间】:2015-08-02 18:03:12
【问题描述】:
我想在 Ruby 中创建一个默认值为空数组的哈希
所以,我编码了
x = Hash.new([])
但是,当我尝试将值推入其中时
x[0].push(99)
所有键都被99 推入该数组。我该如何解决这个问题?
【问题讨论】:
-
Hash.new { [] }是你想要的。 -
@CarySwoveland 这将返回一个新数组而不将其存储在哈希中
-
如果您通过
|=(例如x[0] |= [99])添加值,则可以使用x = Hash.new { [] },因为这将创建一个新数组并将其分配给x[0]。我认为最好在下面的答案中明确说明。
标签: ruby