我有这样的代码:递增类变量
class Person
@@instance_count = 0
def initialize name
@name = name
@@instance_count += 1
end
def self.instance_count
p "Instances created - #{@@instance_count}"
end
end
person_1 = Person.new "first_name"
person_2 = Person.new "second_name"
person_3 = Person.new "third_name"
Person.instance_count
其输出"Instances created - 3"
。
我不明白,为什么在+=
增量initialize
和@@instance_count
不是每次创建一个新的实例变量的时间重置为0
。每次创建新实例时@@instance_count
未重置为0
时发生了什么?
因为只有一个该变量的实例。没有新的创建。可能你会将类变量('@@ var')与实例变量('@ var')混淆 –