Swift中类似C++和ruby中的final机制
2016-04-03 08:22
381 查看
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
我们知道在C++和ruby语言的错误处理中有一种final机制,发生在无论是否出现错误都会执行的情况.这时适合处理收尾或清理工作.
在Swift中同样存在一个defer语法,后面跟闭包可以完成类似的功能,只不过defer不仅仅可以用在错误处理中,它可以用在任何需要清理的情况:
var isTrue = false func test(name:String)->Bool{ isTrue = true defer { isTrue = false } print("now isTrue is \(isTrue)") return name == "hopy" } test("hopy") print(isTrue)
可以看到在test退出之前isTrue都是true,当函数退出后由于前面的defer语句的作用,isTrue会变为false.
相关文章推荐
- Swift中类似C++和ruby中的final机制
- [iOS] App引导页的简单实现 (Swift 2)
- swift系统自带二维码的生成
- Swift 基础语法
- Swift中的可选类型(Optional)以及?和!的用法详解
- 计时器Timer
- Swift获取沙盒中目录的一个分类
- Swift里封装AFNetworking
- swift segment实现页面切换
- Swift 学习记录(5)
- Swift语言精要 - Operator(运算符重载)
- 用Swift完成不同View Controller之间的切换
- swift与OC混编需要注意的小问题
- Swift 通知的使用(十一)
- Swift延迟加载的一种用途
- Swift延迟加载的一种用途
- Swift延迟加载的一种用途
- Swift语言精要 - Operator(运算符重载)
- Swift语言精要 - 扩展(Extension)
- Swift语言精要 - 属性