我有一个哈希表,用于将变量存储为值。我希望能够通过在哈希中查找变量来更改这些变量,但是我想不出一种方法来更改变量本身。
bar = "ruby"
foo = {key: bar}
foo
#=> { "key" => "ruby" }
foo[:key] = "rails"
foo
#=> { "key" => "rails" }
如何更改存储为哈希值的变量,而不是更改哈希本身?
答案 0 :(得分:1)
我想知道为什么要这样做,但是可以存储变量名而不是变量本身:
bar = "ruby"
foo = {key: 'bar'}
设置变量:
eval("#{foo[:key]} = 'rails'")
p foo # {:key=>"bar"}
p bar # "rails"
获取变量:
eval(foo[:key])