Ruby 1.9Ruby中的實例變量
我突然意識到我不明白如何在Ruby中定義和初始化實例變量。它必須使用只有在一定class
並且根本不能從一個類訪問,所以attr_accessor
或attr_reader
是不是我所需要的。
class MyClass
#how do I initialize it?
@my_var = 'some value'
def method1
#I need to do something with @my_var
puts @my_var
end
def method2
#I need to do something with @my_var
puts @my_var
end
end
a = MyClass.new
a.method1 #empty
a.method2 #empty
所以,我發現還有另一種方式來做到這一點
class MyClass
#is this the only way to do it?
def initialize
@my_var = 555
end
def method1
#I need to do something with @my_var
puts @my_var
end
def method2
#I need to do something with @my_var
puts @my_var
end
end
a = MyClass.new
a.method1 #555; it's ok
a.method2 #555; it's ok
那麼,是第二種方法是正確的?
他們只能在方法(構造器)來初始化'初始化()'?這是我的問題。 – Alexandre 2012-08-02 14:23:39
它們可以在任何實例方法中初始化,但'initialize'是任何給定實例調用的第一個方法,所以它是最好的方法。 – tadman 2012-08-02 14:26:53
爲什麼不能通過任何方法初始化? 'class MyClass @my_var ='some value'; end'? – Alexandre 2012-08-02 14:45:52