kotlin的this和it用法-this 和 it 的用法对比

时间:2024-10-30 08:41:48

1. 在 apply 中使用 this

class Person {
    var name: String = ""
    var age: Int = 0
}

fun main() {
    val person = Person().apply {
        this.name = "Alice"
        this.age = 25
    }
    println("Name: ${person.name}, Age: ${person.age}")
}

解释: apply 中的 this 是 Person 对象的接收者,可以省略写成 name = “Alice”。

2. 在 let 中使用 it

val name: String? = "Alice"
name?.let {
    println("Hello, $it!")
}

解释: 这里的 it 代表 name 的非空值 “Alice”。

3. 选择使用 this 还是 it 的场景

使用 this:当你在类或扩展函数中,操作的是当前对象(接收者)。
使用 it:当你在 Lambda 中有一个参数,并且不想明确命名时。

4. 结合使用 this 和 it

class Box(val label: String) {
    fun printLabel() {
        listOf("item1", "item2").forEach {
            println("$label contains $it")
        }
    }
}

fun main() {
    val box = Box("MyBox")
    box.printLabel()
}

解释:
this 引用 Box 类的当前对象,用于访问 label。
it 代表 forEach 中的元素。

5. 总结

this 主要用于引用当前对象或接收者对象,在类、apply 等上下文中频繁使用。
it 主要用于 Lambda 表达式的单个参数,是一种简洁的写法。
在实际开发中,如果需要频繁访问当前对象的成员,this 会更加合适;而在处理简单的 Lambda 表达式时,it 能让代码更加简洁。