Kotlin, forEachveya gibi çok güzel yineleme işlevlerine sahiptir repeat, ancak breakve continueoperatörlerinin onlarla çalışmasını sağlayamıyorum (hem yerel hem de yerel olmayan):
repeat(5) {
break
}
(1..5).forEach {
continue@forEach
}
Amaç, olağan döngüleri olabildiğince yakın işlevsel sözdizimi ile taklit etmektir. Kotlin'in bazı eski sürümlerinde kesinlikle mümkündü, ancak sözdizimini yeniden üretmekte zorlanıyorum.
Sorun etiketli bir hata olabilir (M12), ancak yine de ilk örneğin işe yarayacağını düşünüyorum.
Bana öyle geliyor ki bir yerde özel bir numara / açıklama hakkında okudum, ancak konuyla ilgili herhangi bir referans bulamadım. Aşağıdaki gibi görünebilir:
public inline fun repeat(times: Int, @loop body: (Int) -> Unit) {
for (index in 0..times - 1) {
body(index)
}
}
breakve varlığını sorup sormadığınızı continueveya tam olarak aynı şeyi yapan alternatif yanıtlar mı arıyorsunuz? İlki öyle görünüyor, çünkü siz ikincisini reddettiniz.
continue@labelvebreak@labelözellikleri beklerken ), ilgili soruya bakın: stackoverflow.com/questions/34642868/…