反初始化函数
来源:互联网 发布:福州网络棋牌公司 编辑:程序博客网 时间:2024/06/05 11:32
//: Playground - noun: a place where people can play
import UIKit
//这里是一个反初始化函数操作的例子。
struct Bank {
static var coinsInBank = 10_000
static func vendCoins(var numberOfCoinsToVend:Int) -> Int {
numberOfCoinsToVend =min(numberOfCoinsToVend, coinsInBank)
coinsInBank -= numberOfCoinsToVend
return numberOfCoinsToVend
}
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)
playerOne?.coinsInPurse
Bank.coinsInBank
playerOne?.winCoins(2_000)
playerOne?.coinsInPurse
Bank.coinsInBank
playerOne = nil
Bank.coinsInBank
- 反初始化函数
- 《初始化和反初始化》
- Swift 类的初始化和反初始化
- Swift - 类初始化和反初始化方法
- 函数反汇编
- 函数调用反汇编
- 反正切函数(P1183)
- 启动函数反汇编
- 反正切函数
- 函数调用反汇编
- 15.Swift-反初始化过程Deinitialization
- 考虑可能的线程冲突【尤其是初始化、反初始化】
- swift的初始化与反初始化(init, deinit)
- 构造函数+初始化函数
- 函数外初始化与函数内初始化
- checkbox反选函数(js)
- 反正切函数的应用
- main函数反汇编详解
- tightvnc linux编译
- C/C++ 通用 Makefile
- 服务高于子线程
- 将视频、音乐等时间转化为标准时间00:00:00格式的方法
- 多线程程序框架-利用互斥对象实现线程同步
- 反初始化函数
- Hive教程之metastore的三种模式
- SuSE Linux安装多MySQL实例
- 90后年轻董事长VS范冰冰,“中国最年轻的时尚领袖年度人物”花落谁家?
- g++编译命令选项
- 数组之赋值
- android 软键盘隐藏
- ListView OnItemClickListener无作用
- uc/os-ii删除任务