作者:mobiledu2502930381 | 来源:互联网 | 2023-01-12 17:41
我在Ruby中有哈希哈希值,我正在插入新的哈希值或向现有哈希值添加值.我一直觉得Ruby有更好的方法来做到这一点:
map # => { 1 => {:type => "humbug", :name => "grinch" }, 2 => {:type => 2 } }
if map[key]
map[key].store(:name, value)
else
map[key] = { name: value }
end
我希望能够做类似的事情
map[key].store(:name, value) || map[key] = {name: value}
当然失败了,如果没有的value
在map[key]
...的建议?
1> Sergio Tulen..:
有一种不那么尴尬的方式吗?
是.
map[key] ||= {}
map[key].store(:name, value) # or map[key][:name] = value
或者使用Hash缺失值处理程序之一.
map = Hash.new { |hash, key| hash[key] = {} }
# then set fearlessly, missing hashes will be auto-created.
map[key][:name] = value