我有這樣的代碼:遞增類變量
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')混淆 –