第二十五节 with、apply、let、run

1、apply

fun main(args: Array<String>) {

    val list= arrayListOf<String>()
    /**
     * this代表调用者本身
     * 返回值是调用者本身
     */
    list.apply {
        this.add("哈哈")
        add("张三")
        add("李四")
    }
    list.forEach {
        println(it)
    }

}

输出:


image.png

2、let

fun main(args: Array<String>) {

    val list= arrayListOf<String>()
    /**
     * it代表调用者本身
     * let函数返回值是函数参数的返回值 就是lambda表达式的返回值
     */
    list?.let {
        it.add("张三")
        it.add("张三")
        it.add("张三")
        "哈哈"
        10
    }


}

3、with

fun main(args: Array<String>) {

    val list= arrayListOf<String>()
    /**
     * with是独立的函数  可以在任意地方调用
     * with函数需要接收两个参数
     * 第一个参数可以接收任意类型
     * 第二个参数是函数参数,并且这个函数参数是带接收者的函数字面值 接收者就是第一个参数
     * with函数返回值是第二个函数参数的返回值
     */
    with(list){
        this.add("")
        this.add("")
        add("")
        "哈哈"
        10
    }


}

4、run

fun main(args: Array<String>) {

    val list= arrayListOf<String>()
    /**
     * this就是调用者本身
     * run函数返回值就是函数参数的返回值
     */
    list.run {
        this.add("")
        "哈哈"
    }.length


}

• Apply(使用this代表当前对象,返回值是当前对象)
• Let(太用it代表当前对象,返回值是表达式最后一行)
• With(使用this代表当前对象,返回值是表达式最后一行)
• Run(使用this代表当前对象,返回值是表达式最后一行)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容