Swift中类似C++和ruby中的final机制
2016-04-03 08:22
316 查看
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
我们知道在C++和ruby语言的错误处理中有一种final机制,发生在无论是否出现错误都会执行的情况.这时适合处理收尾或清理工作.
在Swift中同样存在一个defer语法,后面跟闭包可以完成类似的功能,只不过defer不仅仅可以用在错误处理中,它可以用在任何需要清理的情况:
可以看到在test退出之前isTrue都是true,当函数退出后由于前面的defer语句的作用,isTrue会变为false.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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.
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- Apple Swift学习教程
- c++ primer 第五版 笔记前言
- 红宝石(Ruby)史话
- share_ptr的几个注意点
- 介绍 Fedora 上的 Swift
- Ruby简明教程之循环语句介绍
- ruby 一些简单的例子
- Ruby on Rails在Ping ++ 平台实现支付
- Ruby 之 class 中的 private、 protected、public
- Ruby中操作文件的方法介绍
- Ruby中的集合编写指南
- CentOS 6.3下编译安装Ruby 2.0笔记
- Ruby基本的环境变量设置以及常用解释器命令介绍
- Ruby编程中关于中断和返回的用法教程
- Ruby中的异常处理代码编写示例
- Ruby程序中发送基于HTTP协议的请求的简单示例