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
相关推荐
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
Wenweno0o1 天前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨1 天前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg3213211 天前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald1 天前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川1 天前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月1 天前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming6661 天前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
BoomHe1 天前
Android AOSP13 原生 Launcher3 壁纸获取方式
android
殷紫川1 天前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java