net*_*000 38 for-loop decrement swift
你如何在Swift 3.0中表达一个递减的索引循环,其中下面的语法不再有效?
for var index = 10 ; index > 0; index-=1{
print(index)
}
// 10 9 8 7 6 5 4 3 2 1
Run Code Online (Sandbox Code Playgroud)
Mar*_*n R 48
具有固定增量或减量的C风格循环可以替换为stride()
:
for index in 10.stride(to: 0, by: -1) {
print(index)
}
// 10 9 8 7 6 5 4 3 2 1
Run Code Online (Sandbox Code Playgroud)
使用stride(to: ...)
或stride(through: ...)
取决于是否应包括最后一个元素.
这是针对Swift 2. Swift 3的语法改变了(再次),请参阅 此答案.
Jon*_*nny 46
这是一种更简单(也更Swifty)的方法.
for i in (0 ..< 5).reversed() {
print(i) // 4,3,2,1,0
}
let array = ["a", "b", "c", "d", "e"]
for element in array.reversed() {
print(element) // e,d,c,b,a
}
array.reversed().forEach { print($0) } // e,d,c,b,a
print(Array(array.reversed())) // e,d,c,b,a
Run Code Online (Sandbox Code Playgroud)
EI *_*2.0 22
从swift 3.0
,stride(to:by:)
Strideable上的方法已被免费功能所取代,stride(from:to:by:)
for index in stride(from: 10, to: 0, by: -1){
print(index)
}
Run Code Online (Sandbox Code Playgroud)
Seb*_*ski 10
你可以使用stride
方法:
10.stride(through: 0, by: -1).forEach { print($0) }
Run Code Online (Sandbox Code Playgroud)
或经典的while循环.
归档时间: |
|
查看次数: |
17449 次 |
最近记录: |