नवीनतम स्विफ्ट 3 के लिए अपडेट (अभी भी स्विफ्ट 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
अद्यतन नवीनतम स्विफ्ट 2 के लिए
सबसे पहले, प्रोटोकॉल एक्सटेंशन reverse
का उपयोग कैसे किया जाता है:
for i in (1...5).reverse() { print(i) } // 5 4 3 2 1
स्ट्राइड Xcode 7 बीटा 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) }
अस्थायी बिंदु से सावधान रहें सीमा के लिए यहां तुलना करें।
पहले स्विफ्ट 1.2 के लिए संपादित करें : एक्सकोड 6 बीटा 4 के रूप में, और रिवर्सट्रैंग द्वारा अब मौजूद नहीं हैं: [
यदि आप किसी सीमा को उलटना चाह रहे हैं, तो उलटा कार्य करना चाहिए:
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
}