【发布时间】:2019-06-07 19:19:01
【问题描述】:
我有一个哈希表,用于将变量存储为值。我希望能够通过在哈希中查找这些变量来更改这些变量,但是我想不出一种方法可以在不更改值本身的情况下做到这一点。
bar = "ruby"
foo = {key: bar}
foo
#=> { "key" => "ruby" }
foo[:key] = "rails"
foo
#=> { "key" => "rails" }
如何更改作为值存储在散列中的变量,而不是更改散列本身?
【问题讨论】:
-
变量不是对象,因此它们不能存储为值。当你写
{ key: bar }时,其中bar是一个变量,此时键:key的值被设置为等于bat的值。比如bar = 'hi'; h = { key: bar } #=> { key: 'hi' },h[:key]与bar的值不再有任何关系。