Tag: 关闭

从forEachLine返回

我有这个方法 private fun getDeviceType(): Device { ExecuteCommand().forEach { if (it == "my search string") { return Device.DEVICE_1 } } return Device.UNKNOWN } 其中ExecuteCommand()实际上是一个cat file并返回文件内容的列表。 所以不是执行一个shell命令,而是将其改为 private fun getDeviceType(): Device { File(PATH).forEachLine { if (it == "my search string") { return Device.DEVICE_1 } } return Device.UNKNOWN } 但现在编译器抱怨说return is not allowed here 。 我怎样才能退出封闭?

C#关闭是否支持非本地回报?

这里解释一下这个问题是一些Scala代码: object Scratch { def foo: Int = { val list = List(1, 2, 3, 4) list.foreach { each => if(each > 2) { return each } println(each) } return 5 } def main(args : Array[String]) : Unit = { val i = foo println("i: " + i) } 上面的代码打印到控制台: 1 2 我:3 特别要注意的是, list.foreach使用的闭包有一个return语句,而这个return语句导致foo […]

在Kotlin中,我如何传递一个参数,使异步范围能够节约呢?

我有下面的代码片断使用Kotlin协程 fun main(args:Array<String>){ println("test") var seed = 3 val deferredResult = async(CommonPool){ seed * 2 } seed = 4 runBlocking(CommonPool) { val result = deferredResult.await() println("Result is $result") } println("end") } 我期待它的行为像JavaScript,并在定义协程时保存seed变量(使用副本)的价值。 但不是打印Result is 6 ,它打印Result is 8 。 我能做些什么来确保在异步范围(而不是4)内使用seed变量(即3)的原始值?