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

Posted

技术标签:

【中文标题】Kotlin:如何从范围返回一些值?【英文标题】:Kotlin: how to return some value from scope? 【发布时间】:2015-04-13 03:44:19 【问题描述】:

在 Scala 中我可以这样写:

val something = 
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2

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

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

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

【问题讨论】:

【参考方案1】:

你可以使用函数run,比如:

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

【讨论】:

这与 OP 发布的内容相同(甚至更冗长)? 现在你编辑了它,这正是他要找的。​​span>

以上是关于Kotlin:如何从范围返回一些值?的主要内容,如果未能解决你的问题,请参考以下文章

如何立即从范围内取消Kotlin协程(返回)?]

如何从 Kotlin 协程返回值

Kotlin修炼指南

Kotlin学习笔记-----取值范围和循环

Android - Kotlin:异步返回值

如何在Kotlin中正确处理大于127的字节值?