3
Swift文檔清楚地說。Swift初始化不返回值?
與Objective-C初始值設定項不同,Swift初始值設定項不返回 值。
請解釋下面的語法。
let instanceOfString = String()
它通過調用初始化程序並返回它來初始化一個String對象。值分配給instanceOfString
。不是嗎?
Swift文檔清楚地說。Swift初始化不返回值?
與Objective-C初始值設定項不同,Swift初始值設定項不返回 值。
請解釋下面的語法。
let instanceOfString = String()
它通過調用初始化程序並返回它來初始化一個String對象。值分配給instanceOfString
。不是嗎?
swift文檔是指類型的init
方法的語法。
的語法在簽名省略了返回類型和方法通常不包含return語句:
init() {
}
顯然一個初始化(String()
)的調用並返回一個值。與Objective-C的不同之處在於純Swift類型中的init
方法不能自由地返回與該方法的目標不同的對象 - 它始終是目標類型的隱式分配實例。
唯一的例外是可以在可分段的初始化程序中返回nil
。
Objective C引入了一個特性,通過使返回類型爲'instancetype'來將返回類型鎖定爲目標類型。 – MadNik
@MadNik你仍然可以返回派生類型。在Swift中這是不可能的 - 你甚至不能返回完全相同類型的不同實例。 –
是的。偉大的一點。這使答案完整。 – MadNik