【问题标题】:Access a module's class variables inside a class in Ruby在 Ruby 的类中访问模块的类变量
【发布时间】:2011-10-13 14:02:29
【问题描述】:

我有一个模块,里面有一个类变量

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 这样的东西会很好。只是好奇。

【问题讨论】:

标签: ruby accessor class-variables


【解决方案1】:

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

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

【讨论】:

  • 旁注:如果你想在很大程度上克服这些想法,我在最近举行的 Ruby Conf India 2011 上分享了我的学习经验。请随时在kartzontech.blogspot.com/2011/06/ruby-conf-india-2011.html 和给出您的评分和反馈。最重要的是,请阅读最后一张幻灯片,其中我提到了帮助我塑造 Ruby 思维方式的资源。
【解决方案2】:

试试这个

Abc.class_variable_get(:variable)

【讨论】:

  • 请扩展您的代码或补充说明,否则您的答案可能会被版主删除。
猜你喜欢
  • 2012-01-06
  • 1970-01-01
  • 2016-09-13
  • 2022-01-05
  • 1970-01-01
  • 2017-06-18
  • 2014-02-27
  • 2013-04-12
  • 2014-02-09
相关资源
最近更新 更多