Swift3 Swift 3和反向循环数组的代码转换器
我的代码与swift3不兼容Swift3 Swift 3和反向循环数组的代码转换器,swift3,Swift3,我的代码与swift3不兼容 for var i = FCatalogIdx-1; i > -1; i -=1 { // access items in array FCaalogArr } 代码转换器建议转换为 for i in ((-1 + 1)...FCatalogIdx-1).reversed() { 这似乎与: for i in (0...FCatalogIdx-1).reversed() { 这是我能找到的最接近我的旧代码吗?如果是这样,是否建议使用代码转换器建议(
for var i = FCatalogIdx-1; i > -1; i -=1 {
// access items in array FCaalogArr
}
代码转换器建议转换为
for i in ((-1 + 1)...FCatalogIdx-1).reversed() {
这似乎与:
for i in (0...FCatalogIdx-1).reversed() {
这是我能找到的最接近我的旧代码吗?如果是这样,是否建议使用代码转换器建议(-1+1)看起来很难看,但我怀疑这是为了暗示原始的c风格循环逻辑?您不应该使用
(-1+1)
,因为这是不必要的混淆。另外,请使用半开范围运算符。您不应该使用(-1+1)
,因为这是不必要的混淆。另外,在FCaalogArr.indicies.reversed()中为i使用半开范围运算符。如果您的目标只是迭代FCaalogArr.indicies.reversed()如果假设fcaalogdx是数组的最后一个索引,则最好使用FCaalogArr.indicies.reversed()中为i的半开范围运算符,只需对FCatalogArr.reversed()中的元素使用{…
我需要从FCatalogIdx开始迭代到开始,您真的需要使用索引,还是只关心array的元素?如果您的目标只是迭代FCatalogArr,只需对FCatalogArr.reversed()中的元素使用){…
我需要从FCatalogIdx开始迭代到开始你真的需要使用索引,还是只关心arrray元素?我相信这看起来是最干净的解决方案-谢谢!@Tom,我添加了更多关于半开范围操作符的信息。我相信这看起来是最干净的解决方案-谢谢!@Tom,我添加了更多关于半开放范围操作员的信息。。
for i in (0 ..< FCatalogIdx).reversed() {
}
let n = 0
for i in 0 ..< n {
print("hello") // range is empty, so this is never printed
}
for i in 0 ... n-1 { // fatal error: Can't form Range with upperBound < lowerBound
print("hello")
}