从Ruby中的变量创建哈希键?

时间:2014-01-29 19:30:07

标签: ruby hash syntax

我有一个变量id,我想将它用作散列中的键,以便将赋给变量的值用作散列的键。

例如,如果我有变量id = 1,则所需的结果哈希值为{ 1: 'foo' }

我尝试使用

创建哈希
{
  id: 'foo'
}

但是这不起作用,而是导致使用符号:id'foo'的哈希值。

我可以发誓我以前做过这件事,但我完全是在画一个空白。

1 个答案:

答案 0 :(得分:81)

如果要填充具有特定值的新哈希,可以将它们传递给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'也可以与{}一起使用:

{ id => 'foo' }

否则,如果哈希已存在,请使用Hash#=[]

h = {}
h[id] = 'foo'