当我浏览Rails源代码时,它包含以下行:
@@autoloads = {}
@@
在Ruby中意味着什么?
答案 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
答案 1 :(得分:1)
@@标识一个类变量。
答案 2 :(得分:1)
@@只是表示一个类变量。
类变量是在类的所有实例之间共享的变量。这意味着对于从此类实例化的所有对象,只存在一个变量值。
思考类变量的另一种思考方式是在单个类的上下文中作为全局变量。