我有点困惑的变量的作用域的@,红宝石我写了一个测试程序:为什么我需要设置变量值
class Test
attr_reader :tester
def initialize(data)
@tester = data
end
def getData
tester
end
end
puts Test.new(11).getData
现在这个工作得很好,在attr_reader,但我的困惑是因为我定义了attr_reader:tester,那么为什么我不能去tester = data而不是@tester = data,因为当在getData中检索数据时,我只需要写测试器而不是@tester
但如果我用attr_accessor替换attr_reader:测试者是否意味着我应该只能测试= data? (这不起作用) – Saad
是的,如果你使用'attr_accessor:tester',你也会得到一个setter方法。你可以发表你使用'attr_accessor'和'tester = data'不起作用的例子吗? – Wukerplank