В Ruby я могу получить доступ к переменной экземпляра класса из метода экземпляра? - PullRequest
0 голосов
/ 28 ноября 2018

Следующий код устанавливает переменную класса в классе C из метода класса и показывает, что он доступен из метода экземпляра:

class C
  def self.set_a
    @@a = 1
  end

  def get_a
    @@a
  end
end

C.set_a
C.new.get_a #=> 1

Если я заменю @@a в классеметод set_a с @a, так что он создает переменную экземпляра класса вместо переменной класса, могу ли я получить к ней доступ из метода экземпляра get_a?

1 Ответ

0 голосов
/ 29 ноября 2018

Я не думаю, что вы можете ссылаться на это напрямую.Класс является объектом, а переменные экземпляра являются частными / внутренними для объекта.Вы можете получить к нему доступ, используя instance_variable_get в классе или обернув его в метод получения.

В Rails вы можете использовать class_variable macro , который облегчаетустановка и доступ к переменным уровня класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...