9

我有一个带有类变量的模块

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进去吗?我的意思是类似的东西会很好。只是好奇。Helloget_variableAbc.variable

4

2 回答 2

4

您不能在模块中的类范围内@@variable直接访问(即) 。为什么?因为,当 Ruby 解释器看到类似的东西时,它会认为是 Abc 的类/模块方法。Abc.variableHelloAbcAbc.variablevariable

在 Ruby 中编程时,以 Ruby 的方式思考是很重要的。

于 2011-07-26T17:10:38.383 回答
-1

试试这个

Abc.class_variable_get(:variable)
于 2014-03-31T08:39:55.213 回答