在 Kotlin 中,运算符重载允许你为自定义类型(如类或结构体)定义新的运算符行为。要实现运算符重载,你需要遵循以下步骤:
- 定义一个类或结构体。例如,我们创建一个简单的
Point
类,用于表示二维平面上的点:
data class Point(val x: Double, val y: Double)
- 为自定义类型实现运算符函数。在 Kotlin 中,你可以使用
operator
关键字来定义运算符重载函数。运算符重载函数的名称必须包含所重载的运算符。例如,我们要为Point
类实现加法运算符+
:
fun Point.plus(other: Point): Point {
return Point(x + other.x, y + other.y)
}
这里,我们在 Point
类后面添加了一个名为 plus
的函数,它接受一个 Point
类型的参数 other
,并返回一个新的 Point
实例,其坐标为两个点对应坐标之和。
- 使用运算符重载。现在你可以像使用内置类型一样使用自定义类型的运算符重载。例如:
val p1 = Point(1.0, 2.0) val p2 = Point(3.0, 4.0) val p3 = p1 + p2 // 使用加法运算符 println("p1 + p2 = (${p3.x}, ${p3.y})") // 输出 "p1 + p2 = (4.0, 6.0)"
注意,Kotlin 支持多种运算符重载,包括基本的算术运算符(如 +
、-
、*
、/
)、比较运算符(如 ==
、!=
、>
、<
等)以及逻辑运算符(如 &&
、||
、!
等)。要实现这些运算符的重载,只需按照上述方法为自定义类型编写相应的运算符函数即可。