Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin:如何从范围返回一些值?_Kotlin - Fatal编程技术网

Kotlin:如何从范围返回一些值?

Kotlin:如何从范围返回一些值?,kotlin,Kotlin,在Scala中,我可以这样写: val something = { val temp1 = ... val temp2 = ... temp1 + temp2 } 据我所知,在Kotlin做到这一点的最佳方法是: val something = { val temp1 = ... val temp2 = ... temp1 + temp2 }() 实际上,它是一个lambda,类型为Unit->Int,立即被调用。我想知道这段代码是否可以改进?也许有一个内置函数允许我

在Scala中,我可以这样写:

val something = {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}
据我所知,在Kotlin做到这一点的最佳方法是:

val something = {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}()

实际上,它是一个lambda,类型为Unit->Int,立即被调用。我想知道这段代码是否可以改进?也许有一个内置函数允许我编写val something=block{…}或类似的东西?

您可以使用函数
run
,例如:

val something = run {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}

这与OP发布的内容是一样的(甚至更详细)?现在你编辑了它,它正是他想要的。