如何在kotin的forEach中实现break和continue?
先说结论

break的实现:

1
2
3
4
5
6
7
8
9
10
11
fun main() {
run{
(1..10).forEach {
if(it%3==0) return@run
println(it)
}
}
}
//结果
1
2

这是官方推荐的方法:但是这个实现break的方法有些丑陋,凭空添加一层壳子。
而网上有关于类似的做法,比如通过filter或者find预知你要判断的数,但是往往我们的break的地方不能只是在开头或者结尾用来跳过某些数,如例子
而是一些特定的逻辑后,可以结束循环。

continue的实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
fun main() {
(1..10).forEach {
if(it%3==0) return@forEach
println(it)
}
}
//结果
1
2
4
5
7
8
10

这个比较好理解,所以不过多解释