Ruby 객체 프로그래밍에서의 클래스 방법 및 클래스 확장
유형 방법의 실질은 이 유형의 단일 유형에 사는 단일 방법이다.그 정의 방법은 다음과 같은 세 가지가 있습니다.
#
def MyClass.a_class_method; end
#
class MyClass
def self.anther_class_method; end
end
# *
class MyClass
class << self
def yet_another_class_method; end
end
end
그 중에서 세 번째 방법은 다음과 같다. 유형 방법의 실질, 특히 기억해라!클래스 확장
클래스 확장은 클래스의 단일 클래스에 모듈을 추가하여 클래스 방법을 정의합니다.
module MyModule
def my_method; ‘hello'; end
end
class MyClass
class < self
include MyModule
end
end
MyClass.my_method
위 코드는 구체적인 클래스 확장의 실현 방식을 보여 줍니다. MyModule 모듈을 MyClass 클래스의 단일 클래스에 도입합니다. 왜냐하면 my_method 방법은 MyClass의 단일 클래스의 실례적인 방법입니다. 이렇게, my_method 방법도 MyClass의 한 가지 방법이다.개체 확장
클래스 방법은 단일 방법의 특례이기 때문에 클래스 확장이라는 기교를 임의의 대상에 응용할 수 있다. 이런 기교는 바로 대상을 확장하는 것이다
# :
module MyModule
def my_method; ‘hello'; end
end
obj = Object.new
class << obj
include MyModule
end
obj.my_method # => “hello”
obj.singleton_methods # => [:my_method]
# :Object#extend
module MyModule
def my_method; ‘hello'; end
end
obj = Object.new
#
obj.extend MyModule
obj.my_method # => “hello”
#
class MyClass
extend MyModule
end
MyClass.my_method # => “hello”
Object#extend는 수용자의 단일 클래스에 모듈을 포함하는 단축키 방식입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby의 단일 메소드 및 단일 클래스 상세 정보단일 방법 Ruby는 단일 객체에만 적용되는 단일 객체 추가 방법을 단일 방법이라고 합니다. 또한 위에서 사용한 정의 방법 외에 Object#define_를 통해singleton_method 방법으로 단일 방법 정의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.