类变量是这样的:类实例变量的正确用法
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
我在做什么错?我的印象是,类实例变量与类变量相同,只是没有继承问题......但是你如何使用它们(例如,像在我这里发布的代码中那样计算特定类的实例)?
的可能重复(http://stackoverflow.com/questions/3802540/difference-between-class-variables-和类实例变量) – 2014-09-28 09:51:57
没有解释为什么使用@@ x的代码工作,并且与@x使用相同的代码没有(这就是为什么我问这个问题) – OldBoy 2014-09-28 09:56:52
关于'为什么这个代码不工作的问题“关于SO的话题。 – 2014-09-28 09:58:29