在以下示例中,localVariable
的範圍是什麼?附加到全局數組的局部變量的作用域是什麼?
對象是anArray[0] === localVariable
? localVariable
是否會一直存在,直到Example
超出範圍(從哪裏構建)?
class Example {
var anArray: [DataClass] = []
init() {
let localVariable = DataClass()
anArray.append(localVariable)
}
}
class DataClass { }
初始化程序完成後,localVariable將不再存在。但是它的價值仍然在anArray內部保持活躍。 DataClass的實例只有在沒有人再引用時纔會被釋放 - 這意味着一旦Example實例被釋放,DataClass也會被釋放(如果沒有人從外部訪問anArray並檢索其值) – luk2302
你能解釋一下你遇到的問題?有問題還是隻是好奇? – Jelle
@ luk2302我認爲你是對的 - 但你對'價值'的表述關注我。因爲它是一個類,我相信對象的實際引用將被複制。 – sdasdadas