温馨提示×

Kotlin运算符重载能自定义行为吗

小樊
82
2024-11-03 07:08:44
栏目: 编程语言

是的,Kotlin 允许你自定义运算符的行为。你可以通过为操作数类型实现特定的接口或使用扩展函数来实现运算符重载。

以下是两种自定义运算符行为的示例:

  1. 实现接口:
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
}
  1. 使用扩展函数:
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 类型自定义了加法运算符的行为。你可以根据需要为其他类型和操作符实现类似的自定义行为。

0