在新实例中保存变量

Save variable in a new instance

基本上,我想在更新变量后拥有一个旧的变量实例

下面是一些可能解释得更好的例子:

variable = { a: "#fff" }
saved = variable
variable[:a] = "#000"

saved[:a]

目标是获得"#fff"。取而代之的是预期的最后一行 returns "#000"。我尝试冻结一个对象:

variable = { a: "#fff" }
saved = variable
saved.freeze
variable[:a] = "#000"

但这只会引发 FrozenError: can't modify frozen Hash 错误

只是复制变量

saved = variable.dup

只需复制它:

variable = { a: "#fff" }
saved = variable.dup # attention here
variable[:a] = "#000"

saved[:a]