Подтвердить что ты не робот

Создание хеш-ключа из переменной в Ruby?

У меня есть переменная id, и я хочу использовать ее как ключ в хэше, так что значение, назначенное переменной, используется как ключ хеша.

Например, если у меня есть переменная id = 1, то желаемый результирующий хэш будет { 1: 'foo' }.

Я попытался создать хэш с помощью

{
  id: 'foo'
}

Но это не работает, вместо этого получается хэш с символом :id до 'foo'.

Я мог бы поклясться, что я сделал это раньше, но я полностью рисую пробел.

4b9b3361

Ответ 1

Если вы хотите заполнить новый хэш определенными значениями, вы можете передать их в 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'