从Hash中添加Ruby Hash的键值

时间:2014-06-04 09:24:11

标签: ruby hash key-value

从哈希对象本身内向哈希对象添加键值对的最佳方法是什么?

我知道向哈希添加新密钥的常用方法如下:

hash = Hash.new
hash[:key] = 'value'
hash[:key] # => 'value'

如果我想创建一个在创建后已经拥有此密钥的新哈希,该怎么办?

hash = Hash.new
hash[:key] # => 'value'

这可能吗?谢谢!

3 个答案:

答案 0 :(得分:1)

要创建具有已初始化值集的哈希,您可以执行以下操作:

hash = { :key => 'value' }
hash[:key]    # ===> This evaluates to 'value'

请记住,在Ruby中创建空哈希的惯用方法是:

hash = {}

不像你所说的hash = Hash.new

答案 1 :(得分:0)

您的意思是设置默认值吗?是这样,你可以做:

hash = Hash.new('value')
hash[:key] # => 'value'

答案 2 :(得分:0)

不确定你的意思我的其他答案不是你想要的,你可以创建一个哈希,其中一些键和值已经像这样填充

hash = {:key => 'value'} #{:key=>"value"}

和其他人说的那样,key的默认值不是全部存在的,是通过在创建时传递一个块到哈希值来给出的,如

hash = Hash.new('value') #{}
hash[:test] #"value"

h = Hash.new { |hash, key| hash[key] = "Go Fish: #{key}" } #{}
h[:test] #"Go Fish: test"

最后一个样本来自http://www.ruby-doc.org/core-1.9.3/Hash.html