kotlin标展函数(apply,let,run)

本文介绍了Kotlin中apply、let和run三个扩展函数的用途和区别。apply用于对象初始化,返回配置后的对象;let将接收者传递给lambda表达式,返回lambda的结果;run执行函数引用,返回lambda表达式的结果,不返回接收者。

1、apply
apply函数可与看做是一个配置函数,传入一个对象,返回一个配置好的对象,在作用域内可以直 接调用该对象的任意方法:

 class Student{
        var name:String?=null
        var age:Int?=null
    }
    fun main(){
        class Student{
            var name:String?=null
            var age:Int?=null
        }
        fun main(args: Array<String>) {
            val studentInfo= Student().apply {
                name="小明"
                age=20
            }
            print(studentInfo)
        }
    }

作用:简化对象的初始化

2、let

let函数使摸个变量作用于lambda表达式里,让it关键字引用它

```java
   fun main() {
    val restlt= listOf(6,7,8,9).get(3).let {
        it*it
    }
    print(restlt)
}
输出:81```

let和apply区别:
①、let会把接收者传给lambda,apply什么都不传
②、匿名函数执行完,apply会返回当前接收者,let会返回lambda的最后一行

3、run

fun main() {
    val str="午饭吃什么"
    val result=str.run {
        contains("吃")
    }
    print(result)
}
输出:true

run函数执行函数引用:

fun main() {
    "my name is jack"
        .run(::isLong)
        .run(::show)
        .run(::println)
}
fun isLong(name:String)=name.length>=10

fun show(isLong: Boolean):String{
    return if (isLong){
        "name is jd"
    }else{
        "please create new name"
    }
}

run和apply比较:
只看作用域,run和apply差不多,但是ran不返回接收者,返回的是lanbda结果,true或者false,也可返回其它类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_26554909

有您的支持,我们将做的更好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值