Доступ к переменным класса модуля внутри класса в Ruby - PullRequest
9 голосов
/ 26 июля 2011

У меня есть модуль с переменной класса

module Abc
  @@variable = "huhu"

  def self.get_variable
    @@variable
  end

  class Hello
    def hola
      puts Abc.get_variable
    end
  end
end

a = Abc::Hello.new
a.hola

Возможно ли получить @@variable внутри Hello без использования метода get_variable?Я имею в виду что-то вроде Abc.variable было бы хорошо.Просто любопытно.

Ответы [ 2 ]

4 голосов
/ 26 июля 2011

Вы не можете получить прямой доступ к @@variable (т. Е. Abc.variable) в рамках класса Hello в модуле Abc. Зачем? Потому что, когда интерпретатор Ruby видит что-то вроде Abc.variable, он воспринимает variable как метод класса / модуля Abc.

При программировании на Ruby важно думать о Ruby.

0 голосов
/ 31 марта 2014

попробуйте

Abc.class_variable_get(:variable)
...