Программирование на языке Ruby
Шрифт:
Этот пример заслуживает детального рассмотрения. Во-первых, надо понимать, что метод
Отметим также, что внутри тела
Модуль мог бы захотеть узнать, кто был инициатором примеси. Для этого тоже можно воспользоваться методом
Можно также подмешивать методы экземпляра модуля как методы класса. В листинге 11.7 приведен соответствующий пример.
Здесь полезен метод
Мы все время говорим о методах. А как насчет переменных экземпляра? Конечно, модуль может иметь собственные данные экземпляра, но обычно так не делают. Впрочем, если вы решили, что без этого никак не обойтись, ничто вас не остановит.
Можно подмешивать модуль к объекту, а не классу (например, методом
Важно понимать еще одну вещь. В вашем классе можно определить методы, которые будут вызываться из примеси. Это удивительно мощный прием, знакомый тем, кто пользовался интерфейсами в Java.
Классический пример, с которым мы уже сталкивались ранее, — подмешивание модуля
Другой пример — подмешивание модуля
Можно также определять и собственные модули, ведущие себя подобным образом. Возможности ограничены только вашим воображением.
11.1.13. Трансформация или преобразование объектов
Иногда объект имеет нужный вид в нужное время, а иногда хочется преобразовать его во что-то другое или сделать вид, что он является чем-то, чем на самом деле не является. Всем известный пример — метод
Каждый объект можно тем или иным способом представить в виде строки. Но не каждый объект может успешно «прикинуться» строкой. Именно в этом и состоит различие между методами
При использовании метода
Другие методы (например, оператор конкатенации строк
Вы можете реализовать метод
Аналогично обстоит дело и в отношении массивов. Для преобразования объекта в массив служит метод
Если
Разные дни войны. Дневник писателя, т.2. 1942-1945 годы
Документальная литература:
публицистика
рейтинг книги
Ипатия
Проза:
историческая проза
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров
Система Возвышения
Фантастика:
боевая фантастика
рейтинг книги
Вторая жизнь майора. Цикл
Вторая жизнь майора
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
рейтинг книги
Королева Солнца (сборник)
Фантастика:
фэнтези
рейтинг книги
Кодекс Охотника. Книга XXIV
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Младший сын
1. Государи московские
Научно-образовательная:
история
рейтинг книги
Эволюционер из трущоб. Том 3
3. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Мир в подарок. Трилогия
124. В одном томе
Фантастика:
фэнтези
рейтинг книги
Барбаросса
Морской авантюрный роман
Приключения:
исторические приключения
морские приключения
рейтинг книги