class Node
attr_accessor :value
def initialize(value)
@value
end
end
class Testo
attr_accessor :root
def method
@root = Node.new(4)
current = @root
current.value = 5
end
end
testing = Testo.new
testing.method
puts testing.root.value #=> Returns 5
我不明白。局部变量current
现在是实例变量吗?它是@root
的副本吗? root
不应该是4而不是5吗?
答案 0 :(得分:1)
Ruby中的变量是对象的引用。
你真正在做的是用value=4
实例化一个新的Node对象,然后使用'current'变量(name)引用它(同时@root
引用相同的对象),然后更改它值为5.