我是Ruby的新手,不知道如何在已经存在的哈希表中添加新的条目。例如,首先我构造hash:
hash = {item1: 1}
在那之后,我想要添加item2,所以在这之后,我有这样的散列:
{item1: 1, item2: 2}
我不知道如何处理hash,有人能帮我吗?
发布于 2012-03-06 02:19:35
创建散列:
hash = {:item1 => 1}
向其中添加一个新项目:
hash[:item2] = 2
发布于 2014-01-29 21:08:24
如果要从另一个哈希添加新项-请使用merge
方法:
hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}
在您的特定情况下,它可能是:
hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}
但是,在应该添加多一个元素的时候使用它是不明智的。
请注意,merge
会将这些值替换为现有的键:
hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}
就像hash[:item1] = 2
一样
此外,您还应该注意,merge
方法(当然)不会影响散列变量的原始值-它会返回一个新的合并后的散列。如果您想替换散列变量的值,请改用merge!
:
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
发布于 2012-03-06 02:20:05
它就像这样简单:
irb(main):001:0> hash = {:item1 => 1}
=> {:item1=>1}
irb(main):002:0> hash[:item2] = 2
=> 2
irb(main):003:0> hash
=> {:item1=>1, :item2=>2}
https://stackoverflow.com/questions/9571768
复制相似问题