gpt4 book ai didi

Swift 闭包 - 强制闭包始终完成

转载 作者:搜寻专家 更新时间:2023-10-31 08:22:07 25 4
gpt4 key购买 nike

是否可以强制完成关闭?与具有返回值的函数必须始终返回的方式相同,如果有一种方法可以强制闭包包含始终完成所需的语法,那就太棒了。

例如,这段代码不会编译,因为函数并不总是返回一个值:

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,没有语言结构会导致编译器错误。声明。

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

关于Swift 闭包 - 强制闭包始终完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com