Ruby:从 Ruby 中的变量创建哈希键和值 [英] Ruby: Creating a hash key and value from a variable in Ruby
问题描述
我有一个变量 id
,我想将它用作散列中的键,以便分配给该变量的值用作散列的键.
I have a variable id
and I want to use it as a key in a hash so that the value assigned to the variable is used as key of the hash.
例如,如果我有变量 id = 1
所需的结果散列将是 { 1: 'foo' }
.
For instance, if I have the variable id = 1
the desired resulting hash would be { 1: 'foo' }
.
我试过用,
{
id: 'foo'
}
但这不起作用,而是产生了一个带有符号 :id
到 'foo'
的散列.
But that doesn't work, instead resulting in a hash with the symbol :id
to 'foo'
.
我可以发誓我以前做过这件事,但我完全是在画一个空白.
I could have sworn I've done this before but I am completely drawing a blank.
推荐答案
如果你想用某些值填充新的哈希值,你可以将它们传递给 Hash::[]
:
If you want to populate a new hash with certain values, you can pass them to Hash::[]
:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Hash[ [ ["a", 100], ["b", 200] ] ] #=> {"a"=>100, "b"=>200}
Hash["a" => 100, "b" => 200] #=> {"a"=>100, "b"=>200}
所以在你的情况下:
Hash[id, 'foo']
Hash[[[id, 'foo']]]
Hash[id => 'foo']
最后一个语法 id =>'foo'
也可以与 {}
一起使用:
The last syntax id => 'foo'
can also be used with {}
:
{ id => 'foo' }
否则,如果哈希已经存在,请使用 Hash#=[]
:
Otherwise, if the hash already exists, use Hash#=[]
:
h = {}
h[id] = 'foo'
这篇关于Ruby:从 Ruby 中的变量创建哈希键和值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!