Kotlin笔记24--辅助工具let函数

36 篇文章 2 订阅

let 函数是 Kotlin 的标准函数,它提供了函数式 API 的编程接口,并将原始对象作为参数传递到 Lambda 表达式中。

格式如下:

obj.let { obj ->
    // 具体的执行代码
}

示意说明:调用了 obj 对象的 let 函数,然后 obj 对象本身作为参数传入 Lambda 表达式,执行具体的代码逻辑。

接前文的判空辅助工具 ?. ,配合 let 函数使用,效果好极了。

如下代码,

fun testString(string: String?){
    println(string?.length)
    println(string?.startsWith("A"))
}

翻译过来,其实是这样的,受制于 ?. 操作符的限制,判空执行了两次,

fun testString(string: String?){
    if (string != null){
        println(string.length)
    }
    if (string != null){
        println(string.startsWith("a"))
    }
}

其实,只判空一次就够了,

fun testString2(string: String?){
    if (string != null){
        println(string.length)
        println(string.startsWith("a"))
    }
}

这样的话, ?. 操作符又用不上了。

那就结合 let 函数使用 ?. 操作符吧,

fun testString(string: String?){
    string?.let { str ->
        println(str.length)
        println(str.startsWith("a"))
    }
}

意思是:string 不为空时执行 let 函数的函数体;string 如果不为空,string 作为参数传入 let 函数体,str 就是 string 。

回顾下 Lambda 表达式规则,如果 Lambda 表达式参数列表只有一个参数,不必声明参数名,可以用 it 关键字代替 。

简化为,

fun testString4(string: String?){
    string?.let {
        println(it.length)
        println(it.startsWith("a"))
    }
}

这样,就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值