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的差别

 

posted @   随易来了  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示