以下の内容はhttps://uga-box.hatenablog.com/entry/2024/07/26/000000より取得しました。


【Kotlin】Operator overloadingを調べた

Kotlinの関数についてる operator がわからなかったので調べた

kotlinlang.org

operator はオペレータオーバーロードという機能で、独自のクラスに対して演算子の振る舞いをカスタマイズできるというもの

例えば、プログラミング言語に組み込まれている演算子(+, -, *, / など)の動作を、ユーザー定義のクラスに対してカスタマイズできる

Kotlinでは、特定の名前を持つ関数を定義することで、オペレーターをオーバーロードする

そして、これらの関数には operator キーワードを付ける必要がある

例えば、+ 演算子オーバーロードするため、plus という名前の関数を定義する

data class Point(val x: Int, val y: Int) {
    operator fun plus(other: Point): Point {
        return Point(x + other.x, y + other.y)
    }
}

val p1 = Point(1, 2)
val p2 = Point(3, 4)
val p3 = p1 + p2  // Point(4, 6)

これで、Potinインスタンスの足し算が行えるようになった

他にオーバーロードできる主要なものは以下

①算術演算子

  • + (plus)
  • - (minus)
  • * (times)
  • / (div)
  • % (rem)

②単項演算子

  • +a (unaryPlus)
  • -a (unaryMinus)
  • !a (not)

③複合代入演算子

  • += (plusAssign)
  • -= (minusAssign)
  • *= (timesAssign)

④比較演算子

  • >, <, >=, <= (compareTo)

⑤等価性演算子

  • ==, != (equals)

⑥インデックス演算子

  • a[i] (get)
  • a[i] = b (set)

⑦呼び出し演算子




以上の内容はhttps://uga-box.hatenablog.com/entry/2024/07/26/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14