如何将新项目添加到散列

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

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

我是Ruby新手,不知道如何将新项目添加到已有的哈希中。例如,首先我构造哈希:

hash = {:item1 => 1}

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

{: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}

扫码关注云+社区