有人遇到过这个吗?
我有一个很好的小循环,但它似乎得到了一个警告。
for(;;nimages++)
答案 0 :(得分:3)
It was proposed and accepted to remove the ++ and -- operators from the Swift language in an upcoming release因此,您发现的警告是为了帮助您在删除代码之前避免使用这些类型的构造。 (请参阅链接以获取完整说明以及它们提供的优缺点。)
请注意,根据以下提案,C-Style循环也将在不久的将来弃用:https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md
不确切知道您需要实施什么样的逻辑我不会对推荐解决方案充满信心,但是根据上述提议,我建议您可能希望熟悉Swift {{1} }和for-in
语句。或者,正如另一个人推荐的那样,使用stride
循环也可能是合适的。
答案 1 :(得分:2)
问题是什么?整个错误消息是
C-style for语句已弃用,将在以后的版本中删除 迅速
你可以用
之类的东西替换它while true {
// loop body
nimages += 1
}
最后,如果您知道所需的迭代次数,则可以使用for-in循环:
for nimages in 0..<maxImages { /* loop body */ }
答案 2 :(得分:0)
C Style For loops are deprecated和incrementing decrementing like these i++ , i-- also deprecated
因此不能再使用这种类型的循环
let myArray = ["one","two","three","four","five","six"]
for var i = 0; i < myArray.count; i++ {
print(myArray[i])
}
我们可以使用此
,而不是使用上述语法let myArray = ["one","two","three","four","five","six"]
for i in 0..<myArray.count {
print(myArray[i])
}
还有
for i in 0...myArray.count-1 {
print(myArray[i])
}
如果您不熟悉范围运算符和半开放范围运营商,那么现在是时候了 (Document Link)
范围运算符
闭区域运算符(a ... b)定义从a到b的范围,包括值a和b。 a的值不得大于b。
半开放范围运算符
半开范围运算符(a ...&lt; b)定义从a到b的范围,但不包括b。
答案 3 :(得分:0)
对于index--
样式
for index in 10.stride(to: 0, by: -1) {
print(index)//This is 10, 9, 8, ... 1 NOT 0
}
对于index++
样式
for index in 0..<10 {
}