11.3.4. Получение и установка переменных экземпляра
11.3.4. Получение и установка переменных экземпляра
Отвечая на пожелание употреблять eval как можно реже, в Ruby теперь включены методы, которые могут получить или присвоить новое значение переменной экземпляра, имя которой задано в виде строки:
class MyClass
attr_reader :alpha, :beta
def initialize(a,b,g)
@alpha, @beta, @gamma = a, b, g
end
end
x = MyClass.new(10,11,12)
x.instance_variable_set("@alpha",234)
p x.alpha # 234
x.instance_variable_set("@gamma",345) # 345
v = x.instance_variable_get("@gamma") # 345
Прежде всего, отметим, что имя переменной должно начинаться со знака @, иначе произойдет ошибка. Если это кажется вам неочевидным, вспомните, что метод attr_accessor (и ему подобные) принимает для формирования имени метода символ, поэтому-то знак @ и опускается.
Не нарушает ли существование таких методов принцип инкапсуляции? Нет. Конечно, эти методы потенциально опасны. Пользоваться ими следует с осторожностью, а не при всяком удобном случае. Но нельзя говорить, что инкапсуляция нарушена, не видя, как эти инструменты применяются в конкретном случае. Если это делается обдуманно, ради ясно осознанной цели, то все хорошо. Если же цель состоит в том, чтобы нарушить проект или обойти неудачное проектное решение, это печально. Ruby намеренно предоставляет доступ к внутренним деталям объектов тем, кому это действительно нужно; ответственный программист не станет пользоваться свободой во вред.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Получение экземпляра объекта
Получение экземпляра объекта Но как нам получить экземпляр нужного объекта?— Экземпляры многих объектов создаются самим языком JavaScript, Web-обозревателем или библиотеками сторонних разработчиков.— Экземпляры некоторых объектов возвращаются функциями или методами
Получение экземпляра объекта
Получение экземпляра объекта Но как нам получить экземпляр нужного объекта?— Экземпляры многих объектов создаются самим языком JavaScript, Web-обозревателем или библиотеками сторонних разработчиков.— Экземпляры некоторых объектов возвращаются функциями или методами
Свойства и методы экземпляра объекта
Свойства и методы экземпляра объекта Как мы уже знаем, объект определяет набор свойств и методов, которые затем станут "собственностью" всех его экземпляров. Иными словами, экземпляр объекта получит все свойства и методы, что объявлены в объекте, на основе которого он
13.1.3 Получение сетевого адреса и установка ПО
13.1.3 Получение сетевого адреса и установка ПО Поскольку вы собираетесь устанавливать машину с Linux в уже существующую сеть, то следующим вашим шагом при подключении к сети должно стать обращение к администратору сети за получением сетевого адреса. Точнее, вы должны
Часть I Получение копии дистрибутива и установка Ubuntu
Часть I Получение копии дистрибутива и установка Ubuntu Глава 2 Получение дистрибутива Ubuntu Ubuntu распространяется абсолютно бесплатно, поэтому проще всего получить свою копию этой системы через интернет. Подробнее об этом чуть ниже. Однако если по каким-либо причинам у вас
ICQ: установка и получение собственного номера. Обмен сообщениями
ICQ: установка и получение собственного номера. Обмен сообщениями Аббревиатура ICQ имеет англоязычное происхождение. Строго говоря, это не совсем аббревиатура. Просто данное сочетание букв произносится так же, как и английское словосочетание I seek you – «Я ищу тебя».
10.1.10. Получение и установка временных штампов
10.1.10. Получение и установка временных штампов С каждым файлом на диске связано несколько временных штампов (в разных операционных системах они различны). Ruby понимает три таких штампа: время модификации (когда в последний раз было изменено содержимое файла), время доступа
11.1.2. Создание атрибутов экземпляра
11.1.2. Создание атрибутов экземпляра Имени атрибута экземпляра в Ruby всегда предшествует знак @. Это обычная переменная в том смысле, что она начинает существовать после первого присваивания.В ОО-языках часто создаются методы для доступа к атрибутам, чтобы обеспечить
14.9.3. Получение и установка кодов завершения
14.9.3. Получение и установка кодов завершения Метод exit возбуждает исключение SystemExit и в конечном счете возвращает указанный код завершения операционной системе (или тому, кто его вызвал). Этот метод определен в модуле Kernel. Метод exit! отличается от него в двух отношениях: он не
1.1. Получение и установка GCC
1.1. Получение и установка GCC ПроблемаВы хотите получить GCC — свободно распространяемый компилятор GNU C/С++.РешениеРешение зависит от вашей операционной системы.WindowsУстановите MinGW, Cygwin или оба.Чтобы установить MinGW, посетите страницу MinGW по адресу www.mingw.org и проследуйте по
Получение переменных DOS
Получение переменных DOS Какие функции Windows API позволяют получить переменные DOS?Функция GetEnvironmentStrings возвращает адрес памяти со средой текущего процесса. Все переменные возвращаются в виде строк, оканчивающихся нулем. Набор строк терминируется двумя нулями.Функция
Понятия объекта и экземпляра
Понятия объекта и экземпляра Объект — это сложный тип данных, включающий в себя множество переменных — свойств — и набор функций для манипулирования значениями этих переменных — методов. Здесь все достаточно просто: свойства хранят некие данные, а методы их