通过 O'reilley 书中的课程部分,他们似乎表明以下内容应该有效:
class Point
def initialize(x,y)
@x, @y = x, y
end
def x
@x
end
def y
@y
end
def to_s
"(#@x,#@y)"
end
end
p = Point.new(5,0)
q = Point.new(p.x*2, p.y*2)
q.x = 0
puts q.x
从理论上讲,我希望它打印 0,而不是我的编译器NoMethodError
在尝试执行时返回 a q.x = 0
。有什么对你们跳出来的吗?