kotlin的this和it用法

this用法

this 在 Kotlin 中用于引用当前对象实例,在嵌套类、Lambda、匿名对象等上下文中具有灵活用法。
可以通过 标签化的 this 区分不同作用域的对象。在 高阶函数(如 apply、with)中,this 代表 Lambda 的接收者对象,使代码更加简洁,这些用法让 Kotlin 中的 this 比传统的 Java 更加灵活和强大,特别是在函数式编程和嵌套类的上下文中。

1. 类中的 this

在类的成员方法或属性中,this 用于引用当前对象的实例。

class Person(val name: String) {
    fun introduce() {
        println("Hello, my name is ${this.name}.")
    }
}
fun main() {
    val person = Person("Alice")
    person.introduce() // 输出: Hello, my name is Alice.
}

这里的 this.name 明确表示访问当前对象的 name 属性。
可选用法: 如果没有歧义,可以省略 this,直接写成 name。

2. 构造函数之间的调用 (this(…))

在主构造函数中可以通过 this(…) 调用类的其他次构造函数。

class Animal(val name: String) {
    constructor(name: String, age: Int) : this(name) {
        println("Animal's name is $name and age is $age.")
    }
}
fun main() {
    val dog = Animal("Dog", 5)
}

解释: this(name) 调用了主构造函数。

3. 扩展 this 的作用域

3.1 嵌套类或内部类中的 this

如果类包含嵌套类或内部类,我们可以使用 标签化的 this 来区分不同作用域的对象。

class Outer {
    val outerName = "Outer"

    inner class Inner {
        val innerName = "Inner"

        fun printNames() {
            println(this.innerName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值