kotlin: 使用also

一,功能:

also 是 Kotlin 的核心作用域函数之一,‌专注于对象的副作用操作(如日志、验证) ‌,
通过显式 it 访问对象并返回对象自身,适用于链式调用中需要保留对象引用的场景。

二,例子,与apply对比

also和apply的差别主要存在于lambda表达式内context表示方式
also是通过传入的参数(it)来表示
apply是通过this来表示

代码:

        //处理按钮点击事件
        binding.button5.setOnClickListener {
            val person = Person("李大国", 25)
            println(person)
            person.also {
                person.name = "王富贵"
            }.also {
                person.age = 43
            }
            println(person)
            person.also {
                it.name = "尼古拉斯赵四"
            }.also {
                it.age = 55
            }
            println(person)

            person.apply {
                name = "王大拿"
            }.apply {
                age = 66
            }
            println(person)
        }

运行结果:

image

三,例子:also主要用于不更改对象的操作,例如记录或者打印调试信息

代码:

        //处理按钮点击事件
        binding.button4.setOnClickListener {
            val nums = mutableListOf("one", "two", "three")
            println(nums)
            nums.also { println("在列表添加新元素: $it") }
                .add("four")
            println(nums)
        }

运行结果:

image

 

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