在 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 支持多種運算符重載,包括基本的算術運算符(如 +
、-
、*
、/
)、比較運算符(如 ==
、!=
、>
、<
等)以及邏輯運算符(如 &&
、||
、!
等)。要實現這些運算符的重載,只需按照上述方法為自定義類型編寫相應的運算符函數即可。