是否有可能从 foreachline 中断。我的代码:

       fun test() {
        bufferedReader.forEachLine {
            val nameParam = it.split(":")[0]
            if (name == "test")
                return // here i wan to return from function
        }
    }

我试过“return@foreachline”,但它只是继续到下一行

最佳答案

不,它不是:非本地返回仅支持 inline functions ,并且 forEachLine { ... } 不是内联返回,因此您只能使用退出 lambda 的 return@forEachLine

允许它的另一种方法是先读取行,然后遍历它们:

bufferedReader.lines().use { lines ->
    for (it in lines) {
        val nameParam = it.split(":")[0]
        if (name == "test")
            break
    }
}

在这里, .use { ... } 确保 Stream 创建的惰性 .lines() 在不再需要时关闭。

关于kotlin - 有可能从 foreachline 中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48623031/

10-12 06:10