如何更改作为哈希值的变量的值(使用哈希值)?

时间:2019-01-13 16:15:53

标签: ruby hashtable

我有一个哈希表,用于将变量存储为值。我希望能够通过在哈希中查找变量来更改这些变量,但是我想不出一种方法来更改变量本身。

bar = "ruby"
foo = {key: bar}
foo
#=> { "key" => "ruby" }

foo[:key] = "rails"
foo
#=> { "key" => "rails" }

如何更改存储为哈希值的变量,而不是更改哈希本身?

1 个答案:

答案 0 :(得分:1)

我想知道为什么要这样做,但是可以存储变量名而不是变量本身:

bar = "ruby"
foo = {key: 'bar'}

设置变量:

eval("#{foo[:key]} = 'rails'")
p foo # {:key=>"bar"}
p bar # "rails"

获取变量:

eval(foo[:key])