在Ruby中,在类中访问模块的类变量

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

是否可以在不使用get_variable方法的情况下,从Hello中获取@@variable?我的意思是类似Abc.variable这样的方式会更好。只是好奇。


2个回答

4

Abc模块的Hello类的作用域内,您不能直接访问@@variable(即Abc.variable)。为什么?因为当Ruby解释器看到像Abc.variable这样的东西时,它会将variable视为Abc的类/模块方法。

在Ruby编程中,按照Ruby的方式思考非常重要。


附注:如果您希望在很大程度上摆脱这些想法,我已经在最近举行的2011年印度Ruby Conf中分享了我的经验。请随时观看我的演讲,并在http://kartzontech.blogspot.com/2011/06/ruby-conf-india-2011.html上给出您的评分和反馈。最重要的是,请阅读幻灯片的最后一页,其中提到了帮助我以Ruby方式思考的资源。 - karthiks

-1

试一下这个

Abc.class_variable_get(:variable)

请扩展您的代码或补充说明,否则您的答案可能会被管理员删除。 - sshashank124

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接