【运算符重载】
- 该函数使用 operator 修饰符
- 该函数的名称必须被声明为特定的名称,以将对应的操作符映射为这个函数的调用
- 参数必须符合该操作符的规定,例如 + 的重载就不能多于一个参数,也不能为空参数
函数名 | 运算符 | |
一元运算符 | inc dec | ++ -- |
二元运算符 | plus minus times div rem | a + b a - b a * b a / b a % b |
算术运算符 | plusAssign minusAssign timesAssign divAssign remAssign | a += b a -= b a *= b a /= b a %= b |
比较运算符 |
class A{
operator fun plus(a: A){
println("invoking plus")
}
}
//使用
val a = A() + A() //输出:invoking plus
val b = A().plus( A() ) //写法二,替换为函数调用