Perbarui Untuk Swift 3 terbaru (masih berfungsi di Swift 4)
Anda dapat menggunakan reversed()metode ini pada jarak tertentu
for i in (1...5).reversed() { print(i) } // 5 4 3 2 1
Atau stride(from:through:by:)metode
for i in stride(from:5,through:1,by:-1) { print(i) } // 5 4 3 2 1
stide(from:to:by:) serupa tetapi tidak termasuk nilai terakhir
for i in stride(from:5,to:0,by:-1) { print(i) } // 5 4 3 2 1
Perbarui Untuk Swift terbaru 2
Pertama-tama, ekstensi protokol mengubah cara reversedigunakan:
for i in (1...5).reverse() { print(i) } // 5 4 3 2 1
Langkah telah dikerjakan ulang di Xcode 7 Beta 6. Penggunaan baru adalah:
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
Ini juga berfungsi untuk Doubles:
for i in 0.5.stride(to:-0.1, by: -0.1) { print(i) }
Berhati-hatilah dengan perbandingan floating point di sini untuk batas-batasnya.
Pengeditan sebelumnya untuk Swift 1.2 : Sejak Xcode 6 Beta 4, oleh dan ReverseRange tidak ada lagi: [
Jika Anda hanya ingin membalikkan rentang, Anda hanya memerlukan fungsi sebaliknya :
for i in reverse(1...5) { println(i) } // prints 5,4,3,2,1
Seperti yang diposting oleh 0x7fffffff, ada konstruksi langkah baru yang dapat digunakan untuk mengulangi dan menambah dengan bilangan bulat arbitrer. Apple juga menyatakan bahwa dukungan floating point akan datang.
Bersumber dari jawabannya:
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
}