"var3 = self.class.function2"를 "var3 = self.function2"로 바꿀 경우 왜 NoMethodError 예외가 발생하는지 잘 모르겠다레일 : self.function과 self.class.function의 차이점
언제 내가 자기를 사용해야하며 언제 self.class를 사용해야합니까?
class TestClass
var1 = nil
def self.function1
var1 = "hello"
end
def self.function2
p self.function1
var2 = "world"
end
def function3
var3 = self.class.function2
p var3
end
end
myvar = TestClass.new
myvar.function3
'def self.'는 클래스 메소드입니다. 'def function3'은 인스턴스 메소드입니다. 클래스 메소드를 호출하기 위해서는'self.class.function2'을 할 수 있지만 일반적으로'TestClass.function2' 만하면됩니다. – Fallenhero