lambda 标准函数
标准函数let,run,with,also 和 apply
一、let 函数
必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中的参数为当前调用者,it可表示当前调用对象,且最后一行代码作为返回值
val person = Person("yrdz", 24) val a = person.let { it.age it.name } print(a) // 输出"yrdz“
二、run 函数
必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中拥有当前调用对象的上下文 this ,且最后一行代码作为返回值。
与let相似
三、with 函数
接收两个参数,第一个为任意类型参数,第二个为 Lambda 表达式参数,Lambda 表达式中拥有第一个参数的上下文 this ,且最后一行代码作为返回值
var list: MutableList<Int>? = mutableListOf(2, 3) val withReturnValue = with(list) { this?.add(50) 50 } println(withReturnValue) println(list)
结果:println(withReturnValue) : 50
println(list): [2,3,50]
with 最后一行作为返回值
四、also 函数
必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中的参数为当前调用者,无法指定返回值,这个函数返回的是当前调用对象本身
五、apply 函数
必须让某个对象调用,接收一个 Lambda 表达式参数,Lambda 表达式中拥有当前调用对象的上下文 this ,无法指定返回值,这个函数返回的是当前调用对象本身。
接上with函数
val applyReturnValueList = list?.apply { add(80) 100 } print(list) print(applyReturnValueList)
结果:println(list) :[2,3,50,80]
println(applyReturnValueList):[2,3,50,80]
apply函数返回值是调用对象本身
小结区别:
- lei、with、run最后一行为返回值
- aslo,apply返回调用对象本身
参考:(23条消息) “Kotlin“系列: 一、Kotlin入门_sweetying520的博客-CSDN博客
Kotlin中let、run、with、apply及also的差别
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异