用 Kotlin 写 Android 13—约定(运算符重载等)

Kotlin 约定

通过调用自定义函数来实现特定语言结构,这里函数名是有规定的。这种规定实现就叫约定。例如可以用自定义函数 plus 来实现 + 的功能。

Kotlin 的约定主要包含以下几类,

  • 运算符重载
  • 集合运算
  • 委托
  • 解构声明

我们按顺序整理,先看下运算符重载。

运算符的重载可分为 3 种情况,

  1. 二元运算
    可重载的二元运算符.png

    要想重载,首先得用 operator 关键字来修饰重载函数。接着,可以用扩展函数或者在类内部实现该方法,这样一来这个类对象就可以使用相应的运算操作。

operator fun plus(s: Student): String {
    return name + s.name
}
//例如像这样,表示 student 的 + 来拼接名字

对于像 +=,-= 这样的组合运算,其实可以同样用上面的方式重载。那有没有对应的函数名呢?也是有的,但要注意,不要同时即重载 + 和 +=,那样编译器是会报错的。

  1. 一元运算
    可重载的一元运算符.png

    同二元运算符的重载类似,一元运算也能做相应的重载。

  2. 大小比较
    == 的重载,在 Kotlin 里 === 不能被重载。== 的重载其实就是重写 equals 方法。
    大小的比较则以实现 Comparable 接口来完成,例如 A < B 即是 A.compareTo(B) < 0。

参考内容

「Kotlin 实战」

你可能感兴趣的:(用 Kotlin 写 Android 13—约定(运算符重载等))