Kotlin---operator操作符使用场景

1、对象结构

class Cat(var name:String,var gender:String){

//使用operator关键字定义了两个函数

//需要注意的是,函数的名称一定是 component+数字()

//这时,如果调用了component1,那么得到的就是name

//接下来去看 主方法类,Main类

    operator fun component1() =name

    operator fun component2() =gender

}

使用:

val cat =Kotlin.Cat("Tom", "boy")

//注意这里的赋值

//括号中可以包含任意个元素

//这里有两个,就分别对应 component1() 和 component2()

//如果有第三个,那么就应该对应 component3() 方法

val (name,gender) =cat

2、属性代理

class Example {

    var p: String by Delegate()

}

代理类:

class Delegate {

    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {

        return "$thisRef, thank you for delegating '${property.name}' to me!"

    }

    operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {

        println("$value has been assigned to '${property.name} in $thisRef.'")

    }

}

使用:

val e = Example()

println(e.p) // will print "Example@33a17727, thank you for delegating ‘p’ to me!"

e.p = "NEW" // will print "NEW has been assigned to ‘p’ in Example@33a17727."

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容