Я предполагаю, что я прошу разницу между @store
и @@store
в следующем:Статические переменные против переменных класса eigenclass, какова разница в Ruby?
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
Где статические переменные привязаны к, если не в eigenclass? Являются ли эти два фактически одинаковыми с точки зрения взаимодействия?
@@ переменные являются общими в пределах иерархии классов (и экземпляров классов), @variables класса уровня не является. –