【发布时间】:2016-11-17 02:49:57
【问题描述】:
我在理解浅拷贝和#dup 方法的概念时遇到了一些麻烦
我有这个代码
class MyObject
end
myObject1 = MyObject.new
myObject2 = MyObject.new
我知道这会打印错误,因为我正在测试对象相等性,而不是值相等性
p myObject1 == myObject2
但是根据definition的浅拷贝
.dup 生成 obj 的浅拷贝——拷贝 obj 的实例变量,但不拷贝它们引用的对象。
我原以为这会打印出 true,但它也会打印出 false
p myObject1 == myObject1.dup
那不是定义错了吗? myObject1.dup 和 instance variable 不应该指向与 myObject1 相同的对象,除非它显然不是?
【问题讨论】:
标签: ruby