Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从哈希中为Ruby哈希添加键值_Ruby_Hash_Key Value - Fatal编程技术网

从哈希中为Ruby哈希添加键值

从哈希中为Ruby哈希添加键值,ruby,hash,key-value,Ruby,Hash,Key Value,从哈希对象本身向哈希对象添加键值对的最佳方法是什么 我知道向散列添加新密钥的常用方法如下: hash = Hash.new hash[:key] = 'value' hash[:key] # => 'value' 如果我不想创建一个新的散列,它在创建后已经有了这个键,该怎么办 hash = Hash.new hash[:key] # => 'value' 这可能吗?谢谢 您的意思是设置默认值吗?如果是这样,您可以: hash = Hash.new('value') hash[:k

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

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

hash = Hash.new
hash[:key] = 'value'
hash[:key] # => 'value'
如果我不想创建一个新的散列,它在创建后已经有了这个键,该怎么办

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

这可能吗?谢谢

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

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

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

hash = { :key => 'value' }
hash[:key]    # ===> This evaluates to 'value'
请记住,在Ruby中创建空哈希的惯用方法是:

hash = {}

Not
hash=hash.new
如您举例所示。

不确定您的意思我其他答案不是您想要的,您可以创建一个包含一些键和值的hash,如下所示

hash = {:key => 'value'} #{:key=>"value"}
正如其他人所说,key's not allready present的默认值是通过在创建时将一个块传递给hash得到的,如

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


您能解释一下您想要实现的目标吗?不太清楚。我不知道是谁,但我必须说,那些因为一个问题不够清楚而否决别人的人,不应该出现在一个帮助别人的网站上。如果问题不够清楚,可以改进。@xdazz我更新了问题。您想创建一个默认值。。看到这个@ArupRakshit,它看起来像一个答案,而不仅仅是一个评论,如果这能解决问题,请将其作为答案重新发布。是的。。这就是我的意思。但这是一个默认值。不要想,它是添加到任何键。当不存在任何密钥时,如果要访问该密钥,将返回默认值。
h = Hash.new { |hash, key| hash[key] = "Go Fish: #{key}" } #{}
h[:test] #"Go Fish: test"