类变量的工作方式如下:
class Hello
@@x = 0
def self.counter
@@x
end
def initialize
@@x += 1
end
end
Hello.new
Hello.new
Hello.new
p Hello.counter
#=> 3
但类实例变量没有:
class Goodbye
@x = 0
def self.counter
@x
end
def initialize
@x += 1
end
end
Goodbye.new
Goodbye.new
Goodbye.new
Goodbye.new
p Goodbye.counter
#=> Error
我究竟做错了什么 ?我的印象是类实例变量与类变量相同,只是没有继承问题......但是你如何使用它们(例如,像我在这里发布的代码中计算特定类的实例)?