Ruby Language
루비에서 원숭이 패치
수색…
원숭이가 수업을 패치하는 중입니다.
원숭이 패치는 클래스 자체의 외부에있는 클래스 또는 객체를 수정하는 것입니다.
때로는 사용자 지정 기능을 추가하는 것이 유용합니다.
예 : String 클래스를 재정의하여 구문 분석에 부울 값 제공
class String
def to_b
self =~ (/^(true|TRUE|True|1)$/i) ? true : false
end
end
보시다시피 to_b()
메서드를 String 클래스에 추가하여 모든 문자열을 부울 값으로 파싱 할 수 있습니다.
>>'true'.to_b
=> true
>>'foo bar'.to_b
=> false
원숭이가 대상을 패치하기
클래스 패칭과 마찬가지로 단일 객체를 패치 할 수도 있습니다. 차이점은 하나의 인스턴스 만 새로운 메소드를 사용할 수 있다는 것입니다.
예제 : 구문 분석을 제공하기 위해 문자열 객체를 재정의합니다.
s = 'true'
t = 'false'
def s.to_b
self =~ /true/ ? true : false
end
>> s.to_b
=> true
>> t.to_b
=> undefined method `to_b' for "false":String (NoMethodError)
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow