Kotlin 约定
通过调用自定义函数来实现特定语言结构,这里函数名是有规定的。这种规定实现就叫约定。例如可以用自定义函数 plus 来实现 + 的功能。
Kotlin 的约定主要包含以下几类,
- 运算符重载
- 集合运算
- 委托
- 解构声明
我们按顺序整理,先看下运算符重载。
运算符的重载可分为 3 种情况,
-
二元运算
可重载的二元运算符.png
要想重载,首先得用 operator 关键字来修饰重载函数。接着,可以用扩展函数或者在类内部实现该方法,这样一来这个类对象就可以使用相应的运算操作。
operator fun plus(s: Student): String {
return name + s.name
}
//例如像这样,表示 student 的 + 来拼接名字
对于像 +=,-= 这样的组合运算,其实可以同样用上面的方式重载。那有没有对应的函数名呢?也是有的,但要注意,不要同时即重载 + 和 +=,那样编译器是会报错的。
-
一元运算
可重载的一元运算符.png
同二元运算符的重载类似,一元运算也能做相应的重载。
- 大小比较
== 的重载,在 Kotlin 里 === 不能被重载。== 的重载其实就是重写 equals 方法。
大小的比较则以实现 Comparable 接口来完成,例如 A < B 即是 A.compareTo(B) < 0。
参考内容
「Kotlin 实战」
网友评论