让我说我声明了像
这样的哈希foo = { }
在正常情况下,如果我需要在哈希中添加新项目,我只需要
foo[:baz] = "mike"
foo[:quz] = "jake"
我想知道是否可以使用块来执行上述操作以避免重复代码。
分配超过2,比方说30 +
答案 0 :(得分:3)
您可以使用Hash#merge!
一次设置多个值:
foo = {}
# later ...
foo.merge!({
:baz => "mike",
:quz => "jake"
})
答案 1 :(得分:0)
要向哈希添加新项目(或者确切地说,将值指定为特定哈希键),请使用以下语法
hash[key] = value
没有更简洁的方法可以做到这一点,在这种情况下使用块没有任何优势。
如果您有多个值,则可以使用合并
foo.merge({
baz: "mike",
quz: "jake",
})
或
foo.merge(baz: "mike", quz: "jake")
您还可以从不同的数据集中组合哈希,例如
values = [:baz, "mike", :quz, "jake"]
foo.merge(Hash[values])
但最好的解决方案可能取决于你如何获得要添加到哈希值的值。