Kotlin:如何从作用域中 return 一些值?

Kotlin: how to return some value from scope?

在 Scala 中我可以这样写:

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

据我所知,在 Kotlin 中执行相同操作的最佳方法是:

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

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

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

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