Ruby/Методика самопознания: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 351:
my_object.instance_variables #-> ["@variable_2"]</source>
 
Создавать дополнительный метод <tt>.remove</tt> в классе <tt>Sample</tt> пришлось потому, что метод <tt>.remove_instance_variable</tt> является [[w:Инкапсуляция|закрытым]], то есть он может быть использован только внутри метода экземпляра. Если создание дополнительного метода не требуется, то можно использовать метод <tt>.instance_eval</tt>, который выполняет любой программный код кв контексте экземпляра. Перепишем наш пример с использованием этого метода.
 
{{info|Блок метода <tt>.class_eval</tt> может иметь параметр -- текущий экземпляр (он же <tt>self</tt>), в контексте которого выполняется блок}}