Так что я только начинаю пробираться через Прагматическую Книжную Книгу, " Программирование на Ruby 1.9 (3-е издание) ", и я наткнулся на некоторый код, который мне нужно немного пояснить.
Если вы владеете книгой, она находится в главе 3 «Классы, объекты и переменные», в частности в разделе о виртуальных атрибутах.
По сути, класс определяется с помощью инициализатора, который устанавливаетпара переменных экземпляра, одна из которых @price
.Эта переменная имеет метод доступа / мутатор, созданный с помощью attr_accessor, например:
attr_accessor :price
У этого класса также есть виртуальный атрибут с именем price_in_cents
, который просто возвращает значение из этой строки:
Integer(price*100 + 0.5)
Теперь мой вопрос: почему price
в виртуальном атрибуте не имеет префикса @
?Он явно имеет дело с переменной экземпляра.Выполнение кода без @
работает так же, как и с;почему это так?
PS Извините, что не просто выкладываю код оптом - учитывая, что это вопрос о коде в книге, я не был уверен, какое юридическое право я буду публиковать.