博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
析构器
阅读量:5292 次
发布时间:2019-06-14

本文共 953 字,大约阅读时间需要 3 分钟。

  1. 析构器写法是deinit{}
  2. 析构器是在类被销毁之前自动调用的一个方法。
  3. 析构器不允许我们手动调动。
  4. 析构器不允许显示调用父类的析构器。
  5. 析构器不存在重写,也不用加override关键字。如果子类和父类同时都写了析构器,那么先调用子类析构器,在去调用父类的析构器。
class Bank {    static var coinsInBank = 10_000    class func receive(coins: Int) {        coinsInBank += coins    }        class func distribute(conis: Int) {        coinsInBank -= conis    }}class Player {    var conins: Int    init(coins: Int) {        self.conins = coins        Bank.distribute(conis: coins)    }        func win(conins: Int) {        self.conins += conins        Bank.distribute(conis: conins)    }        func lost(conins: Int) {        self.conins -= conins        Bank.receive(coins: conins)    }        deinit {        Bank.coinsInBank += conins    }}var a: Player? = Player(coins: 100)var b = Player(coins: 100)print("a = \(a!.conins)")print("b = \(b.conins)")print("bank = \(Bank.coinsInBank)")a = nilprint("bank = \(Bank.coinsInBank)")复制代码

转载于:https://juejin.im/post/5d2d40285188254180610612

你可能感兴趣的文章
HTTP协议 (四) 缓存
查看>>
python学习之random
查看>>
使用onclick跳转到其他页面/跳转到指定url
查看>>
【转载】测试计划模板
查看>>
pandas 修改指定列中所有内容
查看>>
ubuntu18.04 复制或剪切某文件夹下的前x个文件到另一个文件夹下
查看>>
input的value中有特殊字符
查看>>
字符串压缩
查看>>
用Lua定制Redis命令
查看>>
小程序-canvas在IOS手机层级最高无法展示问题
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
解决win8使用内置管理员不能打开应用商城、天气等问题
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
globalization与全球化
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
关于在Idea 创建Maven项目时,无法在source文件下创建servlet文件问题解决!
查看>>
对 HTTP 304 的理解
查看>>
深入理解css中的margin属性
查看>>