Программирование на языке Ruby
Шрифт:
Начиная с версии Ruby 1.6.2, можно также применять метод
Явное
11.2.7. Как работает включение модулей?
Когда модуль включается в класс, Ruby на самом деле создает прокси-класс, являющийся непосредственным родителем данного класса. Возможно, вам это покажется интуитивно очевидным, возможно, нет. Все методы включаемого модуля «маскируются» методами, определенными в классе.
Выглядит это как настоящее наследование: все, что потомок переопределил, становится действующим определением вне зависимости от того, вызывается ли
Вот похожий пример, в котором метод потомка вызывает
Отсюда видно, что модуль действительно является новым родителем класса. А что если мы точно также вызовем
Метод
При выполнении этого кода мы получили бы ошибку
11.2.8. Опознание параметров, заданных по умолчанию
В 2004 году Ян Макдональд (Ian Macdonald) задал в списке рассылки вопрос: «Можно ли узнать, был ли параметр задан вызывающей программой или взято значение по умолчанию?» Вопрос интересный. Не каждый день он возникает, но от того не менее интересен.
Было предложено по меньшей мере три решения. Самое удачное и простое нашел Нобу Накада (Nobu Nakada). Оно приведено ниже:
Как видим, этот подход работает даже, если вызывающая программа явно указала значение параметра, совпадающее с подразумеваемым по умолчанию. Трюк становится очевидным, едва вы его увидите: выражение в скобках устанавливает локальную переменную
11.2.9. Делегирование или перенаправление
В Ruby есть две библиотеки, которые предлагают решение задачи о делегировании или перенаправлении вызовов методов другому объекту. Они называются
Вечера в древности
Проза:
классическая проза
историческая проза
рейтинг книги
Победить тьму...
Любовные романы:
любовно-фантастические романы
рейтинг книги
Дорога Короля
Фантастика:
фэнтези
рейтинг книги
Завтра война
1. Завтра война
Фантастика:
космическая фантастика
рейтинг книги
Уго Чавес
1432. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
рейтинг книги
Следы на снегу
Проза:
современная проза
рейтинг книги
Платина и шоколад
Любовные романы:
любовно-фантастические романы
эро литература
рейтинг книги
Слово авторитета
Я – вор в законе
Детективы:
боевики
рейтинг книги
Призыв
Стивен Кинг поражен…
Фантастика:
ужасы и мистика
рейтинг книги
Острова в океане
Книга на все времена
Проза:
классическая проза
рейтинг книги
Я до сих пор царь. Книга XXXII
32. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Хищники
рейтинг книги