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

Ale*_*eev 6 kotlin

在Scala中我可以这样写:

val something = {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}
Run Code Online (Sandbox Code Playgroud)

据我所知,在Kotlin做同样的事情的最佳方法是:

val something = {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}()
Run Code Online (Sandbox Code Playgroud)

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

bas*_*hor 14

你可以使用函数run,如:

val something = run {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}
Run Code Online (Sandbox Code Playgroud)