第十节 运算符重载

1、

fun main(args: Array<String>) {

    val a=10
    val b=20
    println(a + b)
}

我们看下这个加号代表的含义


image.png

点进去发现其实调用的是这个方法

/** Adds the other value to this value. */
    public operator fun plus(other: Int): Int

于是,我们也可以这样写

fun main(args: Array<String>) {

    val a=10
    val b=20
    println(a.plus(b))
}

我们能不能对自定义的对象执行“+”操作呢?比如,两个Person对象,我们认为两个Person对象相加就是他们的年龄相加
2、两个Person对象相加‘

fun main(args: Array<String>) {

    var person=Person()
    var person2=Person()
    println(person+person2)
}


class Person{
    var name="张三"
    var age=20
    //必须加上operator
    operator fun plus(person:Person):Int{
        return this.age+person.age
    }
}

输出:


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容