析構(gòu)器只適用于類類型,當(dāng)一個類的實例被釋放前,析構(gòu)器會被立即調(diào)用(類似delloc奇适?)谜酒。析構(gòu)器用關(guān)鍵字deinit叹俏。
析構(gòu)過程原理
在類的定義中,每個類最多只能有一個析構(gòu)器,而且析構(gòu)器不帶任何參數(shù)。
析構(gòu)過程類似于delloc僻族。
class Bank {
static var coinsInBank = 10_000
static func distribute(coins numberOfCoinsRequest:Int) -> Int {
let numberOfCoinsToVend = min(numberOfCoinsRequest, coinsInBank)
coinsInBank -= numberOfCoinsToVend
return numberOfCoinsToVend
}
static func receive (coin:Int) {
coinsInBank += coin
}
}
class Player {
var coinsInPurse : Int
init(coins:Int) {
coinsInPurse = Bank.distribute(coins: coins)
}
func wins(coins:Int) {
coinsInPurse += Bank.distribute(coins: coins)
}
deinit {
Bank.receive(coin: coinsInPurse)
}
}