使用Apple的Swift編程指南我在ARC的解釋中遇到了這個例子;更改類中常量的值
class Person {
let name: String
init(name: String) {
self.name = name
println("\(name) is being initialized")
}
deinit {
println("\(name) is being deinitialized")
}
}
var reference1: Person?
var reference2: Person?
var reference3: Person?
我理解的想法,因爲變量是選項類型它們與零值初始化,並沒有引用Person實例。所以以下對我來說很有意義。
reference1 = Person(name: "John Appleseed")
但是我在做實驗,很驚訝地看到我也可以這樣做;
reference1 = Person(name: "Johnny Appleseed")
我期待代碼錯誤,因爲我試圖改變常量「名稱」屬性。我不僅可以更改此屬性,還可以收到「Johnny Appleseed正在初始化」的消息。我怎樣才能初始化一個常量兩次?