Was ist der Unterschied zwischen diesen beiden Variablen:
1 | class Test |
2 | @v = 1 |
3 | |
4 | def initialize |
5 | @@w = 2 |
6 | end |
7 | end |
@@w ist eine Klassenvariable, aber was ist @v? Wenn @v zugewiesen wird, zeigt self auf die Eigenklasse Test, @v existiert also in Test - genau wie die zur Instanz-Initialisierung zugewiesene @@w. Heißt das, daß @@w eine Kurzschreibweise ist für irgendwas in dieser Art:
1 | class Test |
2 | def initialize |
3 | class <<self; self; end.@w = 2 |
4 | end |
5 | end |