構造就是將結構體、類或枚舉的實例準備好以便使用的過程。這個過程包括: (1)為實例中的每個存儲屬性設置初始值。 (2)執行必要的準備和初始化工作。 實例的構造過程是通過構造器來完成的。 可以在結構體、類或枚舉中提供自定義的構造器,從而自定義實例的構造過程。 結構體的自定義構造器的基本用法 類的自定義 ...
構造就是將結構體、類或枚舉的實例準備好以便使用的過程。這個過程包括:
(1)為實例中的每個存儲屬性設置初始值。
(2)執行必要的準備和初始化工作。
實例的構造過程是通過構造器來完成的。
可以在結構體、類或枚舉中提供自定義的構造器,從而自定義實例的構造過程。
結構體的自定義構造器的基本用法
/*
構造器就是名為init的特殊方法,其語法格式為:
init([形參列表]) {
構造體
}
與普通的方法相比,構造器沒有關鍵字func和返回類型。
當通過“類型名([構造器的實參列表])”創建某個類型的實例時,系統會自動調用相應的自定義構造器,以完成實例的構造過程。
*/
struct SomeStruct {
var someProperty: String
init(someProperty: String) {
self.someProperty = someProperty
}
}
let someStruct = SomeStruct(someProperty: "SP")
someStruct.someProperty
類的自定義構造器的基本用法
/*
構造器就是名為init的特殊方法,其語法格式為:
init([形參列表]) {
構造體
}
與普通的方法相比,構造器沒有關鍵字func和返回類型。
當通過“類型名([構造器的實參列表])”創建某個類型的實例時,系統會自動調用相應的自定義構造器,以完成實例的構造過程。
*/
class SomeClass {
var someProperty: String
init(someProperty: String) {
self.someProperty = someProperty
}
}
let someClass = SomeClass(someProperty: "SP")
someClass.someProperty
枚舉的自定義構造器的基本用法
/*
構造器就是名為init的特殊方法,其語法格式為:
init([形參列表]) {
構造體
}
與普通的方法相比,構造器沒有關鍵字func和返回類型。
當通過“類型名([構造器的實參列表])”創建某個類型的實例時,系統會自動調用相應的自定義構造器,以完成實例的構造過程。
*/
enum SomeEnum {
case someValue1
case someValue2
case someValue3
init(param: String) {
switch param {
case "sv1":
self = .someValue1
case "sv2":
self = .someValue2
default:
self = .someValue3
}
}
}
SomeEnum(param: "sv2")