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
}
在 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
}