루비 1.9Ruby의 인스턴스 변수
루비에서 인스턴스 변수를 정의하고 초기화하는 방법을 알지 못한다는 것을 알게되었습니다. 내에서만 특정 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
잘 할 수있는 또 다른 방법이 있다는 것을 발견? 각 클래스는 다른 언어의 생성자와 유사한 역할을하는 initialize()
방법이있다
' 초기화()'? 내 질문이야. – Alexandre
모든 인스턴스 메소드에서 초기화 될 수 있지만 '초기화'는 주어진 인스턴스에 대해 호출되는 첫 번째 메소드이므로 수행하는 것이 가장 좋습니다. – tadman
어떤 방법으로 초기화 할 수없는 이유는 무엇입니까? 'class MyClass @my_var = 'some value'; end'? – Alexandre