为什么@test
超出了Aclass
的范围?调用a.print_test
时,我会@test
未定义。
class Aclass
def print_test
puts "@test from Aclass: " + @test
end
end
a = Aclass.new
#a.print_test
#but still in scope here
puts "After print_test call: " + @test
在旁注中,任何人都知道如何获取运行代码按钮?我没有在工具栏中看到它。
答案 0 :(得分:2)
@var
是访问类的当前实例或self
上的实例变量的简便方法。
@test = 'what'
puts self
puts self.instance_variable_get :@test
class Aclass
def print_test
puts self
puts self.instance_variable_get :@test
end
end
a = Aclass.new
a.print_test
因此范围在主程序和类的实例之间发生了变化。