我是Ruby的新手,不知道如何将新项目添加到已经存在的哈希中。例如,首先我构造哈希:
hash = {item1: 1}
之后,要添加item2,因此在此之后,我将得到如下哈希:
{item1: 1, item2: 2}
我不知道对哈希执行哪种方法,有人可以帮我吗?
我是Ruby的新手,不知道如何将新项目添加到已经存在的哈希中。例如,首先我构造哈希:
hash = {item1: 1}
之后,要添加item2,因此在此之后,我将得到如下哈希:
{item1: 1, item2: 2}
我不知道对哈希执行哪种方法,有人可以帮我吗?
Answers:
创建哈希:
hash = {:item1 => 1}
向其中添加一个新项目:
hash[:item2] = 2
hash.merge!(item2: 2)
与hash[:item2] = 2
只有一个参数时相比,@ maguri的执行速度较慢
如果要从另一个哈希中添加新项目,请使用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
方法(当然)不会影响hash变量的原始值-它会返回新的合并的hash。如果要替换哈希变量的值,请merge!
改用:
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
hash.store(key,value) -将键值对存储在哈希中。
例:
hash #=> {"a"=>9, "b"=>200, "c"=>4}
hash.store("d", 42) #=> 42
hash #=> {"a"=>9, "b"=>200, "c"=>4, "d"=>42}
hash [key] = value将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.
创建哈希为:
h = Hash.new
=> {}
现在,将哈希插入为:
h = Hash["one" => 1]
Hash.new
零件,因为Hash[]
已经在创建新的哈希。
hash.merge!(item2: 2)
来合并并保存价值!