微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift闭合 – 强制闭合始终完成

是否可以强制关闭完成?与返回值必须始终返回的函数一样,如果有一种方法可以强制闭包含有总是完成所需的语法,那么它就是王牌.

例如,此代码将无法编译,因为该函数并不总是返回值:

func isTheEarthFlat(withUserIQ userIQ: Int) -> Bool {
    if userIQ > 10 {
        return false
    }
}

以完全相同的方式,我想用闭包定义一个函数,如果闭包永远不会返回,它也不会编译.例如,下面的代码可能永远不会返回completionHandler:

func isTheEarthFlat(withUserIQ userIQ: Int,completionHandler: (Bool) -> Void) {
    if userIQ > 10 {
        completionHandler(false)
    }
}

上面的代码编译,但我想知道是否有一个关键字强制关闭在所有情况下发送完成处理程序.也许它与上述函数中的Void有关?

解决方法

不,如果您忘记(或不需要)在所有可能的条件(如return语句)下调用完成处理程序,则不会导致编译器错误的语言构造.

这是一个有趣的想法,可能会对语言进行有用的增强.也许作为参数声明中某处的必需关键字.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐