它有可能从游艇中断
是否有可能从航线中断。 我的代码:
fun test() { bufferedReader.forEachLine { val nameParam = it.split(":")[0] if (name == "test") return // here i wan to return from function } }
我试过’return @ foreachline’,但它只是继续下一行
不,不是:非内部返回仅支持内联函数 ,而forEachLine { ... }
不是内联函数 ,因此只能使用return@forEachLine
lambdaexpression式的return@forEachLine
。
允许它的替代方法是先读取行,然后遍历它们:
bufferedReader.lines().use { lines -> for (it in lines) { val nameParam = it.split(":")[0] if (name == "test") break } }
在这里, .use { ... }
可以确保由.lines()
创建的惰性Stream
在不再需要时关闭。
自定义控件结构的中断和继续尚未实现。 你可以使用println()
。
只有当它是内联函数时,才可以从函数参数闭包中返回。 所以你可以做另外一个函数来使内联(比如内联包装器)。
fun test() { bufferedReader.forEachLineInlined { val nameParam = it.split(":")[0] if (name == "test") return // here i wan to return from function } } inline fun Reader.forEachLineInlined(action: (String) -> Unit) { this.forEachLine(action) }
- 为什么kotlin使用===如果基本types的值相同,则比较原始types
- 当使用AsyncTask 将Object转换为GoogleMap时,我得到java.lang.RuntimeException
- Kotlin将对象转换为另一个对象
- Gradle kotlin-spring插件不能打开spring类
- 用于将方法参数分配给Android Studio中的字段的Kotlin快捷方式
- 如何迭代通过JsonObject的属性递归?
- Kotlin – kotlin是否包含像java中的基类对象类?
- “这个项目附带的一些Kotlin库有不支持的格式。请更新库或插件”
- SocketException:sendto失败:EBADF(坏文件描述符)