如何添加新的项目散列

我是Ruby新手,不知道如何添加新的项目到已经存在的散列。 例如,我首先构造哈希:

hash = {:item1 => 1} 

之后,想要添加item2,所以在这之后我有这样的散列:

 {:item1 => 1, :item2 =>2} 

我不知道什么方法做哈希,有人可以帮我吗?

创build哈希:

 hash = {:item1 => 1} 

添加一个新的项目:

 hash[:item2] = 2 

如果你想从另一个散列添加新的项目 – 使用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将用现有的键replace值:

 hash = {:item1 => 1} hash.merge({:item1 => 2}) # {:item1=>2} 

完全像hash[:item1] = 2

另外,你应该注意, merge方法(当然)不影响哈希variables的原始值 – 它返回一个新的合并哈希。 如果你想replace哈希variables的值,那么使用merge! 代替:

 hash = {:item1 => 1} hash.merge!({:item2 => 2}) # now hash == {:item1=>1, :item2=>2} 

这很简单:

 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} 

hash.store(key,value) – 在hash中存储一个键值对。

例:

 hash #=> {"a"=>9, "b"=>200, "c"=>4} hash.store("d", 42) #=> 42 hash #=> {"a"=>9, "b"=>200, "c"=>4, "d"=>42} 

文档

hash [key] = value将值给出的值与key给出的密钥关联起来。

 hash[:newKey] = "newValue" 

从Ruby文档: http : //www.tutorialspoint.com/ruby/ruby_hashes.htm

 hash_items = {:item => 1} puts hash_items #hash_items will give you {:item => 1} hash_items.merge!({:item => 2}) puts hash_items #hash_items will give you {:item => 1, :item => 2} hash_items.merge({:item => 2}) puts hash_items #hash_items will give you {:item => 1, :item => 2}, but the original variable will be the same old one. 

创build散列为:

 h = Hash.new => {} 

现在插入哈希作为:

 h = Hash["one" => 1]