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/…