स्विफ्ट
for (i = 1; i < max; i+=2) {
// Do something
}
अजगर में, नियंत्रण के लिए में प्रवाह विवरण एक वैकल्पिक चरण महत्व है "चरण" के लिए समानार्थी "stride" है - वास्तव में Strideable protocol, many common numerical types द्वारा कार्यान्वित किया गया।
(i = 1; i < max; i+=2)
के बराबर है:
for i in stride(from: 1, to: max, by: 2) {
// Do something
}
वैकल्पिक रूप से
, i<=max
के बराबर प्राप्त करने के लिए, through
संस्करण का उपयोग करें:
for i in stride(from: 1, through: max, by: 2) {
// Do something
}
ध्यान दें कि stride
रिटर्न एक StrideTo
/StrideThrough
है, जो के अनुरूप है Sequence
, तो आप अनुक्रम के साथ कुछ भी कर सकते हैं, आप stride
पर कॉल के परिणाम के साथ कर सकते हैं (यानी map
, forEach
, filter
, आदि)। उदाहरण के लिए:
stride(from: 1, to: max, by: 2).forEach { i in
// Do something
}
स्रोत
2016-02-22 15:00:02
इसी प्रकार के प्रश्न: http://stackoverflow.com/questions/35032182/swift-c-style-loops-deprecated-decrement-index। –
मैंने उसे नहीं देखा! मैंने पाया [यह] (http://stackoverflow.com/questions/32197250/using-stride-in-swift-2-0) जिसने मुझे मेरा जवाब दिया। जब मैं खोज रहा था (प्रश्न पूछने से पहले) मैं जिस कीवर्ड को खो रहा था, वह "चरण" था - मैं "चरण" शब्द का उपयोग कर रहा था और कोई उपयोगी परिणाम नहीं ढूंढ रहा था। फिर जब मुझे पता चला, तो मुझे एरिका सदून की [विषय पर पोस्ट] मिली (http://ericasadun.com/2015/05/21/swift-six-killer-features/) जो अब पुरानी है। –