kotlinでforEach内を書いてる時continueやbreakをしたい時
‘break’ and ‘continue’ are only allowed inside a loop(‘break’と ‘continue’はループ内でのみ許可されます)と言われ書けない
原因はfor文の中にブロックが入ってるからでした
public inline fun Array.forEach(action: (T) -> Unit): Unit { for (element in this) action(element) }
val array = arrayOf("a", "b", "c") for (element in array) { run { if (element != "b") { println(element) } else { continue } } }
ということでそれ含めて書いてみました
val array = arrayOf("a", "b", "c") array.forEach { it -> if (it != "b") println(it) else { return@forEach //continue } println("next") } run loop@ { array.forEach { it -> if (it != "b") println(it) else { return@loop //break } println("next") } }
breakの方がネストが深くなってしまうのが少し嫌な感じですね