我有一个方法,它包含以下内容:
let downloadNextPagination = {
if current.integerValue < amount.integerValue {
if current.integerValue != amount.integerValue - 1 {
return true
}
}
return false
}
if downloadNextPagination() {
// Do something
}
此代码将不编译:无法在当前上下文中推断闭包返回类型
将DownloadNextPagination的定义更改为
let downloadNextPagination: () -> Bool
解决问题。问题是:为什么斯威夫特不能得出正确的关闭类型在这里?所有的代码路径都返回bool,但这不能解决?这是一个基本的限制吗/我是否在理解中遗漏了一些东西,或者这只是一个提高编译器类型推理能力的问题,像这样的问题很可能很快就能解决3?
最佳答案
Swift目前只能推断单个返回关闭。您可以将闭包重写为:
let downloadNextPagination = {
return current.integerValue < amount.integerValue && current.integerValue != amount.integerValue - 1
}
关于swift - Swift无法输入包含返回Bool的闭包的推断变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34308352/