我正在研究object_id
Ruby 中的方法行为,以便了解何时创建新对象。我可以理解(1)与(2)相同,(3)与(4)相同。但我不明白为什么(5)与(6)不同。
(1) 到 (6) 下面用我的源代码描述。
所以我想了解何时object_id
会在 Ruby 中更改(新分配)。有人简明扼要地解释一下吗?
非常感谢您提前。
源代码
a = "foo"
b = a
b.slice!(0)
p a.object_id # (1)
p b.object_id # (2)
b = b
p a.object_id # (3)
p b.object_id # (4)
b = b.slice(0)
p a.object_id # (5)
p b.object_id # (6)
结果
70302398954840
70302398954840
70302398954840
70302398954840
70302398954840
70302398954680