Kotlin支持操作符重載,通過(guò)在類中定義對(duì)應(yīng)的函數(shù)來(lái)實(shí)現(xiàn)。操作符重載的函數(shù)需要使用關(guān)鍵字operator來(lái)修飾,同時(shí)需要滿足一定的命名規(guī)則。
例如,可以通過(guò)重載plus操作符來(lái)實(shí)現(xiàn)兩個(gè)對(duì)象相加的功能:
class Point(val x: Int, val y: Int) {
operator fun plus(other: Point): Point {
return Point(x + other.x, y + other.y)
}
}
fun main() {
val p1 = Point(1, 2)
val p2 = Point(3, 4)
val p3 = p1 + p2
println("(${p3.x}, ${p3.y})") // 輸出 (4, 6)
}
除了常見(jiàn)的加減乘除等操作符,Kotlin還支持一些特殊的操作符重載,比如[]、in、…等??梢愿鶕?jù)需求選擇合適的操作符進(jìn)行重載。