首页 > 编程语言 > 详细

Swift中类似C++和ruby中的final机制

时间:2016-04-03 09:03:22      阅读:324      评论:0      收藏:0      [点我收藏+]

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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机制

原文:http://blog.csdn.net/mydo/article/details/51048918

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!