kotlin: 使用let

一,功能

Kotlin 的 ‌let‌ 函数是一个常用的‌作用域函数‌,主要用于对对象进行‌安全操作‌或‌链式转换‌。
它的核心特点是‌
接收一个对象,通过 lambda 表达式处理该对象并返回结果

二,例子,与apply比较

apply

1、函数返回的类型都是原泛型对象本身;

2、函数内部持有的是this,原对象本身。

Let

1、let函数所返回的对象,是在函数中运行完的对象,即let函数的返回类型是根据匿名函数最后一行的变化而变化的;

2、函数内部持有的是it。

代码:

        //处理按钮点击事件
        binding.button3.setOnClickListener {
            "kotlin".let {
                println("原字符串:$it")         // kotlin
                it.reversed()
            }.let {
                println("反转字符串后的值:$it")     // niltok
                it.plus("-java")
            }.let {
                println("新的字符串:$it")          // niltok-java
            }

            "kotlin".also {
                println("原字符串:$it")     // kotlin
                it.reversed()
            }.also {
                println("反转字符串后的值:$it")     // kotlin
                it.plus("-java")
            }.also {
                println("新的字符串:$it")        // kotlin
            }

            "kotlin".apply {
                println("原字符串:$this")     // kotlin
                this.reversed()
            }.apply {
                println("反转字符串后的值:$this")     // kotlin
                this.plus("-java")
            }.apply {
                println("新的字符串:$this")        // kotlin
            }

        }

运行结果:

image

三,例子:apply修改字符串本身需要使用stringbuilder

代码:

        //处理按钮点击事件
        binding.button4.setOnClickListener {
            StringBuilder("kotlin").apply {
                println("原字符串:$this")     // kotlin
                this.reverse()
            }.apply {
                println("反转字符串后的值:$this")     // niltok
                this.append("-java")
            }.apply {
                println("新的字符串:$this")        // niltok-java
            }

            StringBuilder("kotlin").also {
                println("原字符串:$it")     // kotlin
                it.reverse()
            }.also {
                println("反转字符串后的值:$it")     // niltok
                it.append("-java")
            }.also {
                println("新的字符串:$it")        // niltok-java
            }
        }

运行结果:

image

 

posted @ 2025-08-16 08:09  刘宏缔的架构森林  阅读(52)  评论(0)    收藏  举报