Kotlin
कोटलिन में लूप्स
खोज…
टिप्पणियों
कोटलिन में, लूप्स को जहां भी संभव हो, अनुकूलित लूप के लिए संकलित किया जाता है। उदाहरण के लिए, यदि आप एक संख्या सीमा पर पुनरावृति करते हैं, तो ऑब्जेक्ट निर्माण के ओवरहेड से बचने के लिए सादे इंटिमेट वैल्यू के आधार पर बायटेकोड को एक समान लूप में संकलित किया जाएगा।
एक एक्शन एक्स को दोहराएं
repeat(10) { i ->
println("This line will be printed 10 times")
println("We are on the ${i + 1}. loop iteration")
}
Iterables पर लूपिंग
आप मानक के लिए पाश का उपयोग करके किसी भी चलने योग्य पर पाश कर सकते हैं:
val list = listOf("Hello", "World", "!")
for(str in list) {
print(str)
}
कोटलिन में बहुत सी चीजें चलने योग्य हैं, जैसे कि संख्या सीमाएं:
for(i in 0..9) {
print(i)
}
यदि आपको पुनरावृत्ति करते समय सूचकांक की आवश्यकता है:
for((index, element) in iterable.withIndex()) {
print("$element at index $index")
}
वहाँ भी मानक भाषा में शामिल स्पष्ट करने के लिए एक कार्यात्मक दृष्टिकोण है, स्पष्ट भाषा निर्माण के बिना, forEach फ़ंक्शन का उपयोग कर:
iterable.forEach {
print(it.toString())
}
it
में इस उदाहरण परोक्ष वर्तमान तत्व रखती है, को देखने के Lambda प्रकार्य
जबकि लूप्स
जब वे दूसरी भाषाओं में काम करते हैं, तो वे करते हैं:
while(condition) {
doSomething()
}
do {
doSomething()
} while (condition)
डो-इन लूप में, हालत ब्लॉक लूप बॉडी में घोषित मूल्यों और चर तक पहुंच है।
तोड़ो और जारी रखो
कीवर्ड तोड़ें और जारी रखें जैसे वे अन्य भाषाओं में करते हैं।
while(true) {
if(condition1) {
continue // Will immediately start the next iteration, without executing the rest of the loop body
}
if(condition2) {
break // Will exit the loop completely
}
}
यदि आपके पास नेस्टेड लूप हैं, तो आप लूप स्टेटमेंट्स को लेबल कर सकते हैं और ब्रेक को क्वालिफाई कर सकते हैं और स्टेटमेंट जारी रख सकते हैं कि आप किस लूप को जारी रखना चाहते हैं या छोड़ सकते हैं:
outer@ for(i in 0..10) {
inner@ for(j in 0..10) {
break // Will break the inner loop
break@inner // Will break the inner loop
break@outer // Will break the outer loop
}
}
यह दृष्टिकोण कार्यात्मक लिए काम नहीं करेगा forEach
, हालांकि निर्माण।
कोटलिन में एक मानचित्र पर Iterating
//iterates over a map, getting the key and value at once
var map = hashMapOf(1 to "foo", 2 to "bar", 3 to "baz")
for ((key, value) in map) {
println("Map[$key] = $value")
}
प्रत्यावर्तन
अधिकांश प्रोग्रामिंग भाषाओं की तरह कोटलिन में भी पुनरावृत्ति के माध्यम से लूपिंग संभव है।
fun factorial(n: Long): Long = if (n == 0) 1 else n * factorial(n - 1)
println(factorial(10)) // 3628800
ऊपर दिए गए उदाहरण में, दिए गए शर्त को पूरा करने तक factorial
फ़ंक्शन को बार-बार कहा जाएगा।
पुनरावृत्ति के लिए कार्यात्मक निर्माण
कोटलिन स्टैंडर्ड लाइब्रेरी संग्रह पर काम करने के लिए कई उपयोगी कार्य भी प्रदान करता है।
उदाहरण के लिए, map
फ़ंक्शन का उपयोग वस्तुओं की सूची को बदलने के लिए किया जा सकता है।
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
val numberStrings = numbers.map { "Number $it" }
इस शैली के कई लाभों में से एक यह एक समान फैशन में चेन संचालन की अनुमति देता है। केवल एक मामूली संशोधन की आवश्यकता होगी यदि कहते हैं, ऊपर की सूची को भी संख्याओं के लिए फ़िल्टर करने की आवश्यकता थी। filter
फ़ंक्शन का उपयोग किया जा सकता है।
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
val numberStrings = numbers.filter { it % 2 == 0 }.map { "Number $it" }