Ruby中@@ mean的含义是什么?

时间:2012-06-21 05:16:50

标签: ruby-on-rails ruby

当我浏览Rails源代码时,它包含以下行:

@@autoloads = {}

@@在Ruby中意味着什么?

3 个答案:

答案 0 :(得分:2)

这意味着访问一个类属性(一个名为该类的属性),而不是一个实例一(该类中每个实例化对象存在的属性)。

在您的示例中,@@autoloads会持续一段时间。

class TestObj
  @@prop = 0
  def get_prop
      @@prop
  end

  def increment_prop
    @@prop += 1   
  end
end

a = TestObj.new
b = TestObj.new

a.increment_prop 

puts b.get_prop # 1

CodePad

答案 1 :(得分:1)

@@标识一个类变量。

答案 2 :(得分:1)

@@只是表示一个类变量。

类变量是在类的所有实例之间共享的变量。这意味着对于从此类实例化的所有对象,只存在一个变量值。

思考类变量的另一种思考方式是在单个类的上下文中作为全局变量。