gpt4 book ai didi

ios - 对于 Swift 2.2 的循环更新抛出二元运算符错误

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:32 25 4
gpt4 key购买 nike

我正在尝试更新我的一些 swift 代码以符合 swift 2.2 指南。我正在尝试更新我的 for 循环,这是我目前拥有的

for(var i = 0; persons?.count > i; i += 1){}

这就是我认为我应该使用的

for i in (0..<persons?.count){}

但我收到此错误消息“二元运算符‘..<’不能应用于‘Int’和‘Int?’类型的操作数”

我只是不确定我错过了什么。

最佳答案

问题是 persons?.count可能是 nil0..<nil没有任何意义。你可以通过使用 nil coalescing 轻松解决这个问题:

for i in 0..<(persons?.count ?? 0) {
doStuff(i)
}

或者,如果您愿意,可以重载 ..<运算符接受一个可选的作为它的第二个参数:

func ..<<T:ForwardIndexType where T:Comparable>(lower: T, upper: T?) -> Range<T> {
return lower..<(upper ?? lower)
}

这允许你只写:

for i in 0..<persons?.count {
doStuff(i)
}

正如 Sulthan 在评论中指出的那样,这可能不是您问题的最佳解决方案。您可能应该处理 persons 的情况正在nil在您的代码前面:

guard let persons = persons else {
// take care of business
}

for person in persons {
doStuff(person)
}

关于ios - 对于 Swift 2.2 的循环更新抛出二元运算符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37591756/

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