如果我有一個打印使用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稍微快一些,但它並不重要。 –