为什么更改受骗对象会更改原始对象?

时间:2019-11-21 02:41:29

标签: ruby class reference dup

我遇到了这个问题,我需要一些帮助来理解为什么原始对象也被更改了。我的印象是“ .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"]

0 个答案:

没有答案