Swift3 Swift 3和反向循环数组的代码转换器

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() { 这是我能找到的最接近我的旧代码吗?如果是这样,是否建议使用代码转换器建议(

我的代码与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() {

这是我能找到的最接近我的旧代码吗?如果是这样,是否建议使用代码转换器建议(-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")
}