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
相关推荐
Dicky-_-zhang1 天前
系统容量规划与压测实战:从1万到100万QPS的科学扩容
java·jvm
Highcharts.js1 天前
倒置百分比堆叠面积图表示列详解|Highcharts大气成分图表代码
开发语言·信息可视化·highcharts·图表开发·面积图·图表示例·推叠图
csdn_aspnet1 天前
C语言 Lomuto分区算法(Lomuto Partition Algorithm)
c语言·开发语言·算法
Dicky-_-zhang1 天前
消息队列Kafka/RocketMQ选型与高可用架构:从单体到100万TPS的演进
java·jvm
晨曦中的暮雨1 天前
4.15腾讯 CSIG云服务产线 一面
java·开发语言
存在morning1 天前
【GO语言开发实践】二 GO 并发快速上手
大数据·开发语言·golang
fake_ss1981 天前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
茉莉玫瑰花茶1 天前
工作流的常见模式 [ 1 ]
java·服务器·前端
未若君雅裁1 天前
Spring AOP、日志切面与声明式事务原理
java·后端·spring
No8g攻城狮1 天前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库