是的,Kotlin 允許你自定義運(yùn)算符的行為。你可以通過為操作數(shù)類型實現(xiàn)特定的接口或使用擴(kuò)展函數(shù)來實現(xiàn)運(yùn)算符重載。
以下是兩種自定義運(yù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
}
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)類似的自定義行為。