function
이라는 메서드를 정의하려고합니다.Ruby에서 인스턴스 메소드를 정의하는 방법은 무엇입니까?
a = A.new
def a.function
puts 100
end
하지만이 방법은 에 대한 모든 인스턴스 변수뿐 아니라 a
을 작업 할 : 나는이 작업을 수행 할 때 작동합니다. 예를 들어 A
이 a
이 아닌 다른 인스턴스에서 function
을 호출하면 아무 일도 발생하지 않습니다. 그래서 a.function
대신 함수를 정의하기 위해 A::f
을 사용했습니다.
class A
attr_accessor :function
attr_accessor :var
end
def A::function
self.var = 0x123
end
a = A.new
a.function
puts a.var
이 코드는 정상적으로 컴파일되지만 함수를 호출 할 때 오류가 발생합니다. 왜 효과가 없으며 내가 시도하고있는 것을 어떻게 할 수 있습니까?
입문용 Ruby 튜토리얼을 보았습니까? – Chuck
그렇지 않으면 사람을 혼동시킬 수 있기 때문에 제목을 편집했습니다. @GabrielePetronella와 혼동 스러울 것 같아요. 당신이 생각하는 인스턴스 메서드를 원하지만 클래스에 메서드를 정의하지 마십시오. 그것은 클래스 메소드가 될 것이고 완전히 다른 것입니다.) – Telemachus