Шрифт:
Чтобы обнаружить добавление нового метода класса в класс или модуль, можно определить метод класса
В результате выводится следующая информация:
Отметим, что фактически добавлено три метода. Возможно, это противоречит вашим ожиданиям, но метод
Метод
Можно также следить за добавлением методов экземпляра модуля к объекту (с помощью метода
Обращение к
11.3.14. Определение чистильщиков для объектов
У классов в Ruby есть конструкторы (методы
Однако тем, кто переходит на Ruby с таких языков, как C++, этот механизм представляется необходимым — часто задается вопрос, как написать код очистки уничтожаемых объектов. Простой ответ звучит так: невозможно сделать это надежно. Но можно написать код, который будет вызываться, когда сборщик мусора уничтожает объект.
Этот код выводит следующее:
Подчеркнем, что к моменту вызова чистильщика объект уже фактически уничтожен. Попытка преобразовать идентификатор в ссылку на объект с помощью метода