溫馨提示×

Kotlin運(yùn)算符重載能自定義行為嗎

小樊
81
2024-11-03 07:08:44
欄目: 編程語言

是的,Kotlin 允許你自定義運(yùn)算符的行為。你可以通過為操作數(shù)類型實現(xiàn)特定的接口或使用擴(kuò)展函數(shù)來實現(xiàn)運(yùn)算符重載。

以下是兩種自定義運(yùn)算符行為的示例:

  1. 實現(xiàn)接口:
interface Addable<T> {
    operator fun plus(other: T): T
}

class MyNumber(val value: Int) : Addable<MyNumber> {
    override fun plus(other: MyNumber): MyNumber {
        return MyNumber(value + other.value)
    }
}

fun main() {
    val a = MyNumber(1)
    val b = MyNumber(2)
    val c = a + b // 使用自定義的 add 運(yùn)算符
    println(c.value) // 輸出 3
}
  1. 使用擴(kuò)展函數(shù):
fun Int.myAdd(other: Int): Int {
    return this + other
}

fun main() {
    val a = 1
    val b = 2
    val c = a myAdd b // 使用自定義的 myAdd 擴(kuò)展函數(shù)
    println(c) // 輸出 3
}

在這兩個示例中,我們分別為 MyNumber 類型和 Int 類型自定義了加法運(yùn)算符的行為。你可以根據(jù)需要為其他類型和操作符實現(xiàn)類似的自定義行為。

0