Ruby实例变量和散列键 - 它是如何工作的

时间:2018-02-16 22:20:42

标签: ruby-on-rails ruby

请有人告诉我它是如何运作的?使用实例变量@remote设置具有相同名称的哈希键会对其自身的值产生影响......如何?

<title>\n                  Page Not Found &bull; Instagram\n                </title>

1 个答案:

答案 0 :(得分:1)

Ruby是区分“立即值”和“参考值”的众多语言之一。

如果我说x = 5; y = x; y = 6,那么x是一个直接值,仍然包含5,而不是6

但如果我说x = { value: 5 },则x是对哈希对象的引用。当我说y = x时,y引用与x相同的哈希对象。因此y[:value] = 6x[:value] == 6

要防止出现此问题,请查看“ruby deep copy”,然后使用y = x.dup