标题很拗口,一个关于类变量的问题
类变量应该是类、子类、类对象、子类对象共享的
但是类的对象的单件方法却无法访问所属类的类变量...
代码如下,有木有合理的解释呢?
class A
@@a = "It is @@a"
def get_a
@@a
end
end
obj = A.new
puts obj.get_a #=>It is @@a
def obj.test_singleton
"A test"
end
puts obj.test_singleton #=>A test
def obj.get_a_singleton
puts @@a
end
obj.get_a_singleton #=>in `get_a_singleton': uninitialized class variable @@a in Object (NameError)