是否有可能从 foreachline 中断。我的代码:
fun test() {
bufferedReader.forEachLine {
val nameParam = it.split(":")[0]
if (name == "test")
return // here i wan to return from function
}
}
Run Code Online (Sandbox Code Playgroud)
我试过“return@foreachline”,但它只是继续到下一行
不,它不是:非本地返回仅支持内联函数,而forEachLine { ... }
不是内联函数,因此您只能使用return@forEachLine
退出 lambda 的那个。
允许它的另一种方法是先读取行,然后遍历它们:
bufferedReader.lines().use { lines ->
for (it in lines) {
val nameParam = it.split(":")[0]
if (name == "test")
break
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,.use { ... }
确保Stream
创建的惰性.lines()
一旦不再需要就关闭。
归档时间: |
|
查看次数: |
936 次 |
最近记录: |