在 Kotlin 中,运算符重载允许你为自定义类型(如类或结构体)定义新的运算符行为。要实现运算符重载,你需要遵循以下步骤:
Point
类,用于表示二维平面上的点:data class Point(val x: Double, val y: Double)
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 支持多种运算符重载,包括基本的算术运算符(如 +
、-
、*
、/
)、比较运算符(如 ==
、!=
、>
、<
等)以及逻辑运算符(如 &&
、||
、!
等)。要实现这些运算符的重载,只需按照上述方法为自定义类型编写相应的运算符函数即可。