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)
}
运行结果:

三,例子:also主要用于不更改对象的操作,例如记录或者打印调试信息
代码:
//处理按钮点击事件
binding.button4.setOnClickListener {
val nums = mutableListOf("one", "two", "three")
println(nums)
nums.also { println("在列表添加新元素: $it") }
.add("four")
println(nums)
}
运行结果:

浙公网安备 33010602011771号