首先,我刚刚学习 Ruby,并且有 JavaScript 背景。我有一个问题找不到答案。我有这个例子:
a = 'red'
b = a
b.replace('blue')
b = 'green'
print a
Run Code Online (Sandbox Code Playgroud)
蓝色的
我的问题是:为什么会这样?我知道该设置b = a使它们具有相同的 object_id,因此从技术上讲,同一个变量字符串有两个名称。但我从来没有看到使用这种递归值更改的理由。如果我设置b = a它是因为我想操纵a的值而不改变它。
此外,似乎有时一个方法会修改a,但有时它会导致“b”成为一个新对象。这看起来模棱两可,没有任何意义。
我什么时候会用到这个?重点是什么?这是否意味着我无法将a的值传递到另一个变量而不将任何更改传播回a?