Kotlin 开发 - Kotlin Lambda 表达式返回值

Kotlin Lambda 表达式返回值

  1. 在 Kotlin 的 Lambda 表达式中,最后一个表达式的值会自动作为 Lambda 的返回值,不需要显式使用 return
kotlin 复制代码
val (result, time) = measureTimedValue {
    println("任务开始执行")
    Thread.sleep(3 * 1000)
    println("任务执行完成")
    100
}

println("任务结果: $result")
println("执行耗时: $time")
复制代码
# 输出结果

任务开始执行
任务执行完成
任务结果: 100
执行耗时: 3.013381800s
  1. 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
  1. 如果想在 Lambda 中显式使用 return,需要加标签
kotlin 复制代码
val (result, time) = measureTimedValue {
    println("任务开始执行")
    Thread.sleep(3 * 1000)
    println("任务执行完成")
    return@measureTimedValue 100
}

println("任务结果: $result")
println("执行耗时: $time")
复制代码
# 输出结果

任务开始执行
任务执行完成
任务结果: 100
执行耗时: 3.003060500s
相关推荐
kiracrimson2 分钟前
STL简单引入:把数据结构做成模板
开发语言·数据结构·c++
Kapaseker6 分钟前
为什么程序员始终无法彻底解决内存泄漏?
android·kotlin
fanruitian6 分钟前
python property
开发语言·python
captain3769 分钟前
Spring Boot的配置文件
java·spring boot·后端
captain37611 分钟前
Spring Boot日志
java·数据库·spring boot
曹牧14 分钟前
C#里引用ActiveX控件
开发语言·c#
汤姆宝库19 分钟前
推理工程深拆:调度、量化与投机解码
android·开发语言·kotlin
AirDroid_cn22 分钟前
隔离风险:用备用机测试不明APP,电脑远程操控安卓保主力机安全
android·安全
Rabitebla35 分钟前
【Linux】 权限篇(三):深入理解 umask 位运算与粘滞位的设计思想
java·linux·服务器·c++·笔记·学习
czq_268671948738 分钟前
Python打卡第45天
开发语言·python