如果我有一个打印使用at symbol @
实例变量var
我应该引用var
的方法的自定义类?何时使用符号来引用实例变量,何时不使用?
TL; DR:我应该使用方法puts_reader
或puts_ivar
为什么?
class Foo
attr_reader :var
def initialize
@var = "foobar"
end
def puts_reader
puts var
end
def puts_ivar
puts @var
end
end
实例变量是* *总是用'引用@',局部变量没有'@'。 'attr_reader'只是为你添加一个实例***方法***'var',所以它既不是实例变量也不是本地变量。 –
TL; DR的稍微可疑使用:) –
正如您已经显示的那样,您可以使用'@ var'或'var'(提供您的包装方法设置)引用'@ var'。这取决于你,@var稍微快一些,但它并不重要。 –