首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何向哈希中添加新项

如何向哈希中添加新项
EN

Stack Overflow用户
提问于 2012-03-06 02:17:44
回答 6查看 347.9K关注 0票数 203

我是Ruby的新手,不知道如何在已经存在的哈希表中添加新的条目。例如,首先我构造hash:

代码语言:javascript
复制
hash = {item1: 1}

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

代码语言:javascript
复制
{item1: 1, item2: 2}

我不知道如何处理hash,有人能帮我吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-06 02:19:35

创建散列:

代码语言:javascript
复制
hash = {:item1 => 1}

向其中添加一个新项目:

代码语言:javascript
复制
hash[:item2] = 2
票数 332
EN

Stack Overflow用户

发布于 2014-01-29 21:08:24

如果要从另一个哈希添加新项-请使用merge方法:

代码语言:javascript
复制
hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}

在您的特定情况下,它可能是:

代码语言:javascript
复制
hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}

但是,在应该添加多一个元素的时候使用它是不明智的。

请注意,merge会将这些值替换为现有的键:

代码语言:javascript
复制
hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}

就像hash[:item1] = 2一样

此外,您还应该注意,merge方法(当然)不会影响散列变量的原始值-它会返回一个新的合并后的散列。如果您想替换散列变量的值,请改用merge!

代码语言:javascript
复制
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
票数 77
EN

Stack Overflow用户

发布于 2012-03-06 02:20:05

它就像这样简单:

代码语言:javascript
复制
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}
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9571768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档