swift for 循环正序写法很简单:
for i in 0..< num {
// do something
}
但如果我们简单的将for 循环的正序写法倒过来则会出现错误:
for i in num..>0 {
// do somethink
}
以上写法会报下面的错误:
Can't form Range with upperBound < lowerBound
解决以上问题,我们可以这样写:
for i in (0..<num).reversed() {
// do something
}
当然,如果你不满足上面的写法,也可以尝试下面的:
for i in stride(from: 3, through: 0, by: -1) {
print(i)
}
Swift 的 stride 函数返回一个任意可变步长 类型值的序列。可变步长类型是可以设置偏移量的一维标量。
他有两个变种,
- from,to,最后一个值将会严格小(大)于to的值
stride(from:3, to:0, by:-1) 表示3,2,1
- from,through,最后一个值将会小(大)于等于through的值
stride(from:3, through:0, by:-1) 表示3,2,1,0
That's All.