是的,Kotlin 允許你自定義運算符的行為。你可以通過為操作數類型實現特定的接口或使用擴展函數來實現運算符重載。
以下是兩種自定義運算符行為的示例:
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 運算符
println(c.value) // 輸出 3
}
fun Int.myAdd(other: Int): Int {
return this + other
}
fun main() {
val a = 1
val b = 2
val c = a myAdd b // 使用自定義的 myAdd 擴展函數
println(c) // 輸出 3
}
在這兩個示例中,我們分別為 MyNumber
類型和 Int
類型自定義了加法運算符的行為。你可以根據需要為其他類型和操作符實現類似的自定義行為。