一尘不染

在Swift 2.2中替换C风格的循环

swift

Swift 2.2不推荐使用C风格的循环。但是在某些情况下,新的范围运算符可能无法正常工作。

for var i = 0; i < -1; ++i { ... }

for i in 0..<-1 { ... }

后者将在运行时失败。我可以if用来包装循环,但有点混乱。有时,这种循环很有用。

有什么想法吗?

用例

  1. 您需要枚举数组中除最后一个元素之外的所有元素。
  2. 您需要枚举十进制范围内的所有整数,但范围可以是[0.5,0.9],因此没有整数(经过一些数学运算),这将导致空循环。

阅读 154

收藏
2020-07-07

共1个答案

一尘不染

尽管它不是“漂亮”的,但您可以使用stride

for var i in 0.stride(to: -1, by: -1) {
    print(i)
}
2020-07-07