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の方がネストが深くなってしまうのが少し嫌な感じですね