我遇到了这个问题,我需要一些帮助来理解为什么原始对象也被更改了。我的印象是“ .dup”将创建一个新对象以供引用的指针使用,这是错误的吗?
class Pawn
attr_accessor :position
def initialize(position)
@position = position
end
end
pawn = Pawn.new([0, 1])
pawn_copy = pawn.dup
pawn_copy.position[1] = "CHANGED"
pawn.position #=> the result is [0, "CHANGED"]