如何向散列中添加新项

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

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

hash = {:item1 => 1}

在此之后,a希望添加item 2,因此在这之后,我有如下所示的散列:

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

我不知道用什么方法处理哈希?

骑牛看晨曦骑牛看晨曦提问于
镜花破晓筑高墙,广积粮,缓称王。回答于
已采纳

创建散列:

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将用现有键替换值:

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}

扫码关注云+社区