Ich glaube, ich bin für den Unterschied zwischen @store
und @@store
in der folgenden fragen:Statische Variablen versus Eigenklassenklassenvariablen, was ist der Unterschied in 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
Wo sind statische Variablen an, wenn nicht die Eigenklasse? Sind die beiden in Bezug auf die Interaktion effektiv gleich?
@@ Variablen innerhalb der Klassenhierarchie gemeinsam benutzt werden (und Klasseninstanzen), Klasse-Ebene @variables nicht. –