Программирование на языке Ruby
Шрифт:
Для этого нужно определить метод
Отметим, что метод
Кстати, если метод
11.1.11. Метод allocate
Редко, но бывает, что нужно создать объект, не вызывая его конструктор (в обход метода
Метод
11.1.12. Модули
Для использования модулей в Ruby есть две основных причины. Первая — облегчить управление пространством имен; если поместить константы и методы в модули, то будет меньше конфликтов имен. Хранящийся таким образом метод (метод модуля) вызывается с указанием имени модуля, то есть без вызывающего объекта. Точно так же вызывается и метод класса. Увидев вызовы вида
Вторая причина более интересна: мы можем использовать модуль как примесь. Примеси — это способ реализации множественного наследования, при котором наследуется только интерфейс.
Мы уже говорили о методах модуля, а как насчет методов экземпляра? Модуль — это не класс, у него не может быть экземпляров, а к методу экземпляра нельзя обратиться, не указав вызывающий объект.
Но оказывается, модуль может иметь методы экземпляра. Они становятся частью класса, который включил модуль директивой
Здесь модуль
А что происходит с методами модуля, если таковые определены? Если вы думаете, что они становятся методами класса, то ошибаетесь. Методы модуля не подмешиваются.
Но если такое поведение желательно, то его можно реализовать с помощью нехитрого трюка. Существует метод
Санкт-Петербург. Автобиография
Научно-образовательная:
история
рейтинг книги
Клиент
Детективы:
триллеры
рейтинг книги
Неучтенный элемент. Том 7
7. Антимаг. Вне системы
Фантастика:
фэнтези
рейтинг книги
Свободный среди звезд: пилот
Вселенная EVE Online
Фантастика:
космическая фантастика
рейтинг книги
Старплекс. Конец эры (сборник)
Шедевры фантастики
Фантастика:
научная фантастика
рейтинг книги
Перехитрить богов. Дилогия
29. В одном томе
Фантастика:
научная фантастика
рейтинг книги
Газлайтер. Том 26
26. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Северянин. Трилогия
Северянин
Фантастика:
фэнтези
рейтинг книги
Город Бездны
1. Космический апокалипсис
Фантастика:
научная фантастика
космическая фантастика
рейтинг книги
Право на жизнь
Фантастика:
ужасы и мистика
рейтинг книги
Старая школа рул
1. Второгодка
Фантастика:
альтернативная история
рейтинг книги
Война с Востока. Книга об афганском походе
Проза:
военная проза
рейтинг книги
Основы общей психологии
Мастера психологии
Научно-образовательная:
психология
рейтинг книги
Американская трагедия
150. Библиотека всемирной литературы
Проза:
классическая проза
рейтинг книги