Для класса C
представляется, что определение переменной класса в одноэлементном классе C
эквивалентно определению той же переменной класса в C
.
class C
@@a = 0
class << self
@@c = 1
end
end
class D < C
end
C.class_variables
#=> [:@@a, :@@c]
D.class_variables
#=> [:@@a, :@@c]
C.singleton_class.class_variables
#=> []
D.singleton_class.class_variables
#=> []
D.class_variable_get(:@@a)
#=> 0
D.class_variable_set(:@@a, 2)
#=> 2
D.class_variables
#=> [:@@a, :@@c]
C.class_variable_get(:@@a)
#=> 2
D.singleton_class.class_variable_get(:@@c)
#=> 1
D.singleton_class.class_variable_set(:@@c, 3)
#=> 3
C.singleton_class.class_variable_get(:@@c)
#=> 3