코 틀린처럼, 아주 좋은 반복하는 기능을 가지고 forEach
나 repeat
,하지만 난 할 수 없습니다입니다 break
및 continue
운영자가 그들과 함께 작업 (로컬 및 비 로컬) :
repeat(5) {
break
}
(1..5).forEach {
continue@forEach
}
목표는 기능적 구문을 최대한 가깝게 사용하여 일반적인 루프를 모방하는 것입니다. 일부 이전 버전의 Kotlin에서는 확실히 가능했지만 구문을 재현하는 데 어려움을 겪고 있습니다.
문제는 레이블 (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/…