Kotlin具有很好的迭代功能,例如forEach
或repeat
,但是我无法使break
and 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/...