初始化的過(guò)程包括為每一個(gè)存儲(chǔ)屬性設(shè)置一個(gè)初始值和其他步驟。通過(guò)定義構(gòu)造函數(shù)來(lái)實(shí)現(xiàn)初始化的過(guò)程,跟oc的初始化函數(shù)不同,Swift的構(gòu)造函數(shù)不返回一個(gè)值。它們的主要角色是確保一個(gè)類(lèi)型的實(shí)例在初次使用前被正確的初始化。

類(lèi)的實(shí)例也可以有析構(gòu)函數(shù),析構(gòu)函數(shù)在類(lèi)的實(shí)例在釋放前完成一些清理工作。

Setting Initial Values for Stored Properties

類(lèi)和結(jié)構(gòu)體必須為它們所有的存儲(chǔ)屬性設(shè)置一個(gè)初始值,在類(lèi)或結(jié)構(gòu)體的實(shí)例創(chuàng)建完成前。存儲(chǔ)屬性不能是不確定的狀態(tài)。

可以通過(guò)構(gòu)造函數(shù)或默認(rèn)值的方式給存儲(chǔ)屬性一個(gè)初始值,而且通過(guò)這兩種方式,屬性的值都是被直接設(shè)置,不會(huì)調(diào)用屬性觀察者。

Initializers(構(gòu)造函數(shù))

init() {

}

Customizing Initialization(自定義初始化函數(shù))

你可以自定義初始化過(guò)程,通過(guò)使用輸入?yún)?shù),可選的屬性類(lèi)型,或者在初始化期間給常量屬性賦值。具體描述在下面的部分中描述。

1. Initialization Parameters

你可以為構(gòu)造函數(shù)提供參數(shù),看個(gè)例子:

struct Celsius { var temperatureInCelsius: Double init(fromFahrenheit fahrenheit: Double) {
        temperatureInCelsius = (fahrenheit - 32.0) / 1.8 } init(fromKelvin kelvin: Double) {
        temperatureInCelsius = kelvin - 273.15 } init(_ celsius: 
        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式