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
相关推荐
阿俊-全栈开发1 小时前
LikeShop 单商户SaaS商城分销模块二开:佣金计算与结算逻辑实现
java·开发语言·微服务·likeshop·likeshop开源商城·likeshop多商户
wuminyu4 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
m0_380743875 小时前
C++中的freopen的用法实例详解
开发语言·c++
半摆烂日常5 小时前
低代码平台API对接实践:接口鉴权与数据同步的完整实现
android·低代码·rxjava
Escalating_xu5 小时前
【Python】基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
事圆则缓5 小时前
volatile 使用场景全解析:它能保证什么,又解决不了什么
android
jimy15 小时前
polymorph.cpp里面的“析构函数、智能指针”问题
开发语言·c++
m0_380743876 小时前
PHP 8.3 缓存清除不生效怎么排查
开发语言·php
moyv6 小时前
Intel HAXM is required to run this AVD如何解决
android-studio
朝朝辞暮i6 小时前
C++ 第 6 课:switch —— 多状态选择
开发语言·c++·算法