Ruby Language
Обезьяна патч в рубине
Поиск…
Обезьяна, исправляющая класс
Патч обезьяны - это модификация классов или объектов вне самого класса.
Иногда полезно добавлять пользовательские функции.
Пример: переопределить класс String, чтобы обеспечить синтаксический анализ для boolean
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
Обезглавливание объекта
Подобно исправлению классов, вы также можете исправлять отдельные объекты. Разница в том, что только один экземпляр может использовать новый метод.
Пример: переопределить строковый объект, чтобы обеспечить синтаксический анализ для boolean
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