Swift 初始化
Swift的類、結(jié)構(gòu)體和枚舉都用于在Swift4中聲明后準(zhǔn)備類的實例。愛掏網(wǎng) - it200.com初始值用于初始化存儲屬性,這些值被初始化用于進一步處理。愛掏網(wǎng) - it200.com’init()’方法用于創(chuàng)建初始化函數(shù)。愛掏網(wǎng) - it200.comSwift 4的初始化器與Objective-C不同,它不返回任何值。愛掏網(wǎng) - it200.com它的功能是在處理之前檢查新創(chuàng)建實例的初始化。愛掏網(wǎng) - it200.comSwift 4還提供了“析構(gòu)”過程,用于在實例被釋放后執(zhí)行內(nèi)存管理操作。愛掏網(wǎng) - it200.com
在處理實例之前,存儲屬性必須為其類和結(jié)構(gòu)體初始化實例。愛掏網(wǎng) - it200.com存儲屬性使用初始化器來分配和初始化值,而無需調(diào)用屬性觀察器。愛掏網(wǎng) - it200.com
- 創(chuàng)建初始值。愛掏網(wǎng) - it200.com
- 在屬性定義中為屬性分配默認(rèn)值。愛掏網(wǎng) - it200.com
- 為特定數(shù)據(jù)類型初始化實例時,使用’init()’。愛掏網(wǎng) - it200.com在init()函數(shù)中不傳遞任何參數(shù)。愛掏網(wǎng) - it200.com
語法
init() {
//New Instance initialization goes here
}
示例
struct cube {
var length: Double
var breadth: Double
var height: Double
init() {
length = 6
breadth = 12
height = 4
}
}
var volume = cube()
print("volume of cube is \(volume.length*volume.breadth*volume.height)")
輸出:
volume of cube is 288.0
這里,
- 結(jié)構(gòu)體“ cube ”以“Double”數(shù)據(jù)類型初始化,具有長度、寬度和高度成員。愛掏網(wǎng) - it200.com
- Init()方法用于為新創(chuàng)建的成員初始化值。愛掏網(wǎng) - it200.com
- 通過調(diào)用cube函數(shù)來計算和返回cube的體積。愛掏網(wǎng) - it200.com
設(shè)置默認(rèn)的屬性值
在Swift4編程語言中,在聲明類或結(jié)構(gòu)體成員時,init()函數(shù)用于默認(rèn)地初始化屬性值。愛掏網(wǎng) - it200.com當(dāng)屬性在整個程序中都取相同的值時,我們可以在聲明部分單獨聲明它,而不是在init()中初始化它。愛掏網(wǎng) - it200.com通過默認(rèn)設(shè)置屬性值,使用戶在為類或結(jié)構(gòu)體定義繼承時起作用。愛掏網(wǎng) - it200.com
示例
struct cube {
var length = 6
var breadth = 12
var height = 4
}
var volume = cube()
print("volume of the cube is \(volume.length*volume.breadth*volume.height)")
輸出:
volume of cube is 288
參數(shù)初始化
在Swift4語言中,用戶可以使用init()作為初始化器的一部分來初始化參數(shù)。愛掏網(wǎng) - it200.com
示例
struct Rectangle {
var length: Double
var breadth: Double
var area: Double
init(fromLength length: Double, fromBreadth breadth: Double) {
self.length = length
self.breadth = breadth
area = length * breadth
}
init(fromL l: Double, fromB b: Double) {
self.length = l
self.breadth = b
area = l * b
}
}
let a1 = Rectangle(fromLength: 6, fromBreadth: 12)
print("area is: \(a1.area)")
let a2 = Rectangle(fromL: 36, fromB: 12)
print("area is: \(a2.area)")
輸出:
area is: 72.0
area is: 432.0