我想我在下面要求@store
和@@store
之间存在差异:
class Test
@@store = 9
class << self
def set_store(v)
@store = v
end
def store
@store
end
def sstore
@@store
end
end
end
Test.set_store 8
p Test.store # 8
p Test.sstore # 9
a = Test.new
p a.class.store # 8
p a.class.sstore # 9
如果不是本征类,静态变量附加在哪里?这两者在互动方面是否有效?
答案 0 :(得分:0)
它们都是类变量,但在实例中,您只能访问@@ store变量。
请注意,类变量在Ruby中不是线程安全的,因此如果您计划将变量用作Hash,请使用Mutex。