수색…


원숭이가 수업을 패치하는 중입니다.

원숭이 패치는 클래스 자체의 외부에있는 클래스 또는 객체를 수정하는 것입니다.

때로는 사용자 지정 기능을 추가하는 것이 유용합니다.

예 : 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