gpt4 book ai didi

ruby-on-rails - 在 Ruby 哈希中存储值有没有更简单的方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:59 24 4
gpt4 key购买 nike

我在 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}

但是如果 map[key] 上没有 value 当然会失败...建议?

最佳答案

Is there a less awkward way?

是的。

map[key] ||= {}
map[key].store(:name, value) # or map[key][:name] = value

或者使用哈希缺失值处理程序之一。

map = Hash.new { |hash, key| hash[key] = {} }
# then set fearlessly, missing hashes will be auto-created.
map[key][:name] = value

关于ruby-on-rails - 在 Ruby 哈希中存储值有没有更简单的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46791986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com