Kotlin Lambda 表达式返回值
- 在 Kotlin 的 Lambda 表达式中,最后一个表达式的值会自动作为 Lambda 的返回值,不需要显式使用 return
kotlin
val (result, time) = measureTimedValue {
println("任务开始执行")
Thread.sleep(3 * 1000)
println("任务执行完成")
100
}
println("任务结果: $result")
println("执行耗时: $time")
# 输出结果
任务开始执行
任务执行完成
任务结果: 100
执行耗时: 3.013381800s
- return 在 Lambda 中默认是非局部返回,它会直接从包含这个 Lambda 的函数返回,而不是从 Lambda 返回
kotlin
fun main(): Int {
val (result, time) = measureTimedValue {
println("任务开始执行")
Thread.sleep(3 * 1000)
println("任务执行完成")
return 100
}
}
val result = main()
println("任务结果: $result")
# 输出结果
任务开始执行
任务执行完成
任务结果: 100
- 如果想在 Lambda 中显式使用 return,需要加标签
kotlin
val (result, time) = measureTimedValue {
println("任务开始执行")
Thread.sleep(3 * 1000)
println("任务执行完成")
return@measureTimedValue 100
}
println("任务结果: $result")
println("执行耗时: $time")
# 输出结果
任务开始执行
任务执行完成
任务结果: 100
执行耗时: 3.003060500s