Ruby Language
Łatka Monkey w Ruby
Szukaj…
Małpa łata klasę
Łata małp jest modyfikacją klas lub obiektów poza samą klasą.
Czasami przydatne jest dodanie niestandardowej funkcjonalności.
Przykład: Zastąp klasę ciągów, aby zapewnić parsowanie wartości logicznej
class String
def to_b
self =~ (/^(true|TRUE|True|1)$/i) ? true : false
end
end
Jak widać, dodajemy to_b()
do klasy String, dzięki czemu możemy analizować dowolny ciąg znaków na wartość boolowską.
>>'true'.to_b
=> true
>>'foo bar'.to_b
=> false
Małpa łata obiekt
Podobnie jak łatanie klas, możesz także łatać pojedyncze obiekty. Różnica polega na tym, że tylko jedna instancja może korzystać z nowej metody.
Przykład: Zastąp obiekt łańcuchowy, aby umożliwić parsowanie wartości logicznej
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow