Kotlin, forEach
veya gibi çok güzel yineleme işlevlerine sahiptir repeat
, ancak break
ve continue
operatö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)
}
}
break
ve varlığını sorup sormadığınızı continue
veya tam olarak aynı şeyi yapan alternatif yanıtlar mı arıyorsunuz? İlki öyle görünüyor, çünkü siz ikincisini reddettiniz.
continue@label
vebreak@label
özellikleri beklerken ), ilgili soruya bakın: stackoverflow.com/questions/34642868/…