Kotlin की तरह, बहुत अच्छा है बार-बार दोहराना कार्य करता है forEachया repeatहै, लेकिन मैं करने के लिए सक्षम नहीं कर रहा हूँ breakऔर continueऑपरेटरों उनके साथ काम (दोनों स्थानीय और गैर स्थानीय):
repeat(5) {
break
}
(1..5).forEach {
continue@forEach
}
लक्ष्य के रूप में यह हो सकता है के रूप में कार्यात्मक वाक्यविन्यास के साथ सामान्य छोरों की नकल करना है। कोटलिन के कुछ पुराने संस्करणों में यह निश्चित रूप से संभव था, लेकिन मैं वाक्य रचना को पुन: पेश करने के लिए संघर्ष करता हूं।
समस्या लेबल (M12) के साथ एक बग हो सकती है, लेकिन मुझे लगता है कि पहले उदाहरण को वैसे भी काम करना चाहिए।
ऐसा लगता है कि मैंने एक विशेष ट्रिक / एनोटेशन के बारे में कहीं पढ़ा है, लेकिन मुझे इस विषय पर कोई संदर्भ नहीं मिला। निम्नलिखित की तरह लग सकता है:
public inline fun repeat(times: Int, @loop body: (Int) -> Unit) {
for (index in 0..times - 1) {
body(index)
}
}
breakऔर केवल continueकार्यात्मक छोरों की मौजूदगी के बारे में पूछ रहे हैं , या यदि आप वैकल्पिक उत्तर मांग रहे हैं, जो बिल्कुल वही काम करते हैं। पूर्व मामला प्रतीत होता है, क्योंकि आपने बाद को अस्वीकार कर दिया था।
continue@labelऔरbreak@labelसुविधाओं के लिए प्रतीक्षा करते हुए ), संबंधित प्रश्न देखें: stackoverflow.com/questions/34642868/…