Программирование на языке Ruby
Шрифт:
Начиная с версии Ruby 1.6.2, можно также применять метод
Явное связывание делает объект
11.2.7. Как работает включение модулей?
Когда модуль включается в класс, Ruby на самом деле создает прокси-класс, являющийся непосредственным родителем данного класса. Возможно, вам это покажется интуитивно очевидным, возможно, нет. Все методы включаемого модуля «маскируются» методами, определенными в классе.
Выглядит это как настоящее наследование: все, что потомок переопределил, становится действующим определением вне зависимости от того, вызывается ли
Вот похожий пример, в котором метод потомка вызывает
Отсюда видно, что модуль действительно является новым родителем класса. А что если мы точно также вызовем
Метод
При выполнении этого кода мы получили бы ошибку
11.2.8. Опознание параметров, заданных по умолчанию
В 2004 году Ян Макдональд (Ian Macdonald) задал в списке рассылки вопрос: «Можно ли узнать, был ли параметр задан вызывающей программой или взято значение по умолчанию?» Вопрос интересный. Не каждый день он возникает, но от того не менее интересен.
Было предложено по меньшей мере три решения. Самое удачное и простое нашел Нобу Накада (Nobu Nakada). Оно приведено ниже:
Как видим, этот подход работает даже, если вызывающая программа явно указала значение параметра, совпадающее с подразумеваемым по умолчанию. Трюк становится очевидным, едва вы его увидите: выражение в скобках устанавливает локальную переменную
11.2.9. Делегирование или перенаправление
В Ruby есть две библиотеки, которые предлагают решение задачи о делегировании или перенаправлении вызовов методов другому объекту. Они называются
Вернадский
325. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
рейтинг книги
Технология XSLT
Компьютеры и Интернет:
программирование
рейтинг книги
Волкодав
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
рейтинг книги
Петербург - нуар. Рассказы
Проза:
современная проза
рейтинг книги
Я князь. Книга XVIII
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
рейтинг книги
Ведьмак (сборник)
Фантастика:
фэнтези
рейтинг книги
Самвел
Проза:
историческая проза
рейтинг книги
Приключения Оливера Твиста. Повести и рассказы
82. Библиотека всемирной литературы
Проза:
классическая проза
рейтинг книги
Том 5. Рудин. Повести и рассказы 1853-1857
5. Собрание сочинений в двенадцати томах
Проза:
русская классическая проза
рейтинг книги
Рыцарь Империи
3. Одержимый
Фантастика:
фэнтези
рейтинг книги
Ганнибал
3. Ганнибал Лектер
Детективы:
триллеры
рейтинг книги