您当前的位置: 首页 >  c++

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

发布时间:2016-04-03 08:22:04 ,浏览量: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.

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108472博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0483s