最新のSwift 3の更新(Swift 4でも動作します)
reversed()
範囲でメソッドを使用できます
for i in (1...5).reversed() { print(i) } // 5 4 3 2 1
またはstride(from:through:by:)
方法
for i in stride(from:5,through:1,by:-1) { print(i) } // 5 4 3 2 1
stide(from:to:by:)
似ていますが、最後の値を除外します
for i in stride(from:5,to:0,by:-1) { print(i) } // 5 4 3 2 1
最新のSwift 2の更新
まず、プロトコル拡張機能のreverse
使用方法が変わります。
for i in (1...5).reverse() { print(i) } // 5 4 3 2 1
StrideはXcode 7 Beta 6で作り直されました。新しい使用法は次のとおりです。
for i in 0.stride(to: -8, by: -2) { print(i) } // 0 -2 -4 -6
for i in 0.stride(through: -8, by: -2) { print(i) } // 0 -2 -4 -6 -8
それはまた働きDoubles
ます:
for i in 0.5.stride(to:-0.1, by: -0.1) { print(i) }
ここで境界の浮動小数点比較を警戒してください。
Swift 1.2の以前の編集:Xcode 6 Beta 4以降では、byとReverseRangeはもう存在しません:[
範囲を反転するだけの場合は、reverse関数で十分です。
for i in reverse(1...5) { println(i) } // prints 5,4,3,2,1
0x7fffffffによって投稿されたように、任意の整数で反復および増分するために使用できる新しいストライド構成があります。Appleはまた、浮動小数点サポートが近づいていると述べた。
彼の答えから出典:
for x in stride(from: 0, through: -8, by: -2) {
println(x) // 0, -2, -4, -6, -8
}
for x in stride(from: 6, to: -2, by: -4) {
println(x) // 6, 2
}