15.析构函数
? 析構(gòu)器只適用于類(lèi)類(lèi)型,當(dāng)一個(gè)類(lèi)的實(shí)例被釋放之前,析構(gòu)器會(huì)被立即調(diào)用。析構(gòu)器用關(guān)鍵字deinit來(lái)標(biāo)示.
?1.析構(gòu)過(guò)程
2.示例
//Bank類(lèi)管理一種虛擬硬幣,確保流通的硬幣數(shù)量永遠(yuǎn)不可能超過(guò) 10,000。在游戲中有且只能有一個(gè)Bank存在 class Bank {static var coinsInBank = 10000;static func vendCoins(numberOfCoinsToVend: Int) -> Int{let retValue = min(numberOfCoinsToVend, coinsInBank);coinsInBank -= retValue;return retValue;}static func receiveCoins(coins: Int){coinsInBank += coins;} }class Player {var coinsInPurse: Int;init(coins: Int){coinsInPurse = Bank.vendCoins(coins);}func winCoins(coins: Int){coinsInPurse += Bank.vendCoins(coins);}deinit{Bank.receiveCoins(coinsInPurse);} }var playerOne: Player? = Player(coins: 100); print("Player have \(playerOne!.coinsInPurse) coins, Bank have \(Bank.coinsInBank)"); //"Player have 100 coins, Bank have 9900\n" playerOne?.winCoins(2000); print("Player have \(playerOne!.coinsInPurse) coins, Bank have \(Bank.coinsInBank)"); //"Player have 2100 coins, Bank have 7900\n" playerOne = nil; print("Player have \(playerOne?.coinsInPurse) coins, Bank have \(Bank.coinsInBank)"); //"Player have nil coins, Bank have 10000\n"?
轉(zhuǎn)載于:https://www.cnblogs.com/LeeGof/p/5681712.html
總結(jié)
- 上一篇: [Machine Learning] l
- 下一篇: Nginx 日志中记录cookie