如何更改作为散列值的变量的值(使用散列)?
How to change the value of a variable which is a value in a hash (using the hash)?
我有一个哈希表,用于将变量存储为值。我希望能够通过在散列中查找它们来更改这些变量,但我想不出一种不更改值本身的方法。
bar = "ruby"
foo = {key: bar}
foo
#=> { "key" => "ruby" }
foo[:key] = "rails"
foo
#=> { "key" => "rails" }
如何更改作为值存储在散列中的变量,而不是更改散列本身?
我想知道你为什么要这样做,但你可以存储变量的名称而不是变量本身:
bar = "ruby"
foo = {key: 'bar'}
设置一个变量:
eval("#{foo[:key]} = 'rails'")
p foo # {:key=>"bar"}
p bar # "rails"
获取一个变量:
eval(foo[:key])
我有一个哈希表,用于将变量存储为值。我希望能够通过在散列中查找它们来更改这些变量,但我想不出一种不更改值本身的方法。
bar = "ruby"
foo = {key: bar}
foo
#=> { "key" => "ruby" }
foo[:key] = "rails"
foo
#=> { "key" => "rails" }
如何更改作为值存储在散列中的变量,而不是更改散列本身?
我想知道你为什么要这样做,但你可以存储变量的名称而不是变量本身:
bar = "ruby"
foo = {key: 'bar'}
设置一个变量:
eval("#{foo[:key]} = 'rails'")
p foo # {:key=>"bar"}
p bar # "rails"
获取一个变量:
eval(foo[:key])