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