あなたはいたずら好きな数学者だと想像してください。足し算を再定義することにしたので、1 1 は 3 に等しくなります。 ?ほとんどのプログラミング言語では、これは混乱を引き起こすことになりますが、Kotlin では、オフィスでオペレーターの過負荷が発生する日が続くだけです。それは、算術のルールを書き換えて、意のままに曲げることができる力を持っているようなものです。 ➕
Java はルールにこだわります。 、-、*、/ などの演算子にはあらかじめ定義された意味があり、変更することはできません。これは、Java コンパイラに 2 2 = 5 であると信じ込ませようとしているようなものです。コンパイル時にエラーが発生し、数学の基礎について厳しい講義を受けるだけです。 ?
// Java int result = 2 + 2; // Java insists this equals 4
この厳格さにより一貫性が保証されますが、場合によっては制限が生じる可能性があります。それは、科学的な計算が必要なときに、基本的な計算機に行き詰まっているようなものです。
一方、Kotlin を使用すると、独自のクラスやデータ型の演算子の動作を再定義できます。これは演算子のオーバーロードと呼ばれ、数学記号の意味を変換できる魔法の杖を持っているようなものです。 ✨
// Kotlin data class Vector(val x: Int, val y: Int) { operator fun plus(other: Vector): Vector { return Vector(x + other.x, y + other.y) } } val v1 = Vector(1, 2) val v2 = Vector(3, 4) val v3 = v1 + v2 // Now this adds the vectors component-wise!
演算子のオーバーロードを使用すると、次のことが可能になります。
Java では、add()、subtract()、multiply() などのわかりやすい名前のメソッドを定義することで、同様の機能を実現します。これはまったく問題なく機能しますが、コードの簡潔さと直感性が損なわれる場合があります。単に記号を使うのではなく、「これら 2 つの数字を足し算する」と書くようなものです。 ➕
// Java public class Vector { public final int x; public final int y; public Vector(int x, int y) { this.x = x; this.y = y; } public Vector add(Vector other) { return new Vector(this.x + other.x, this.y + other.y); } public static void main(String[] args) { Vector v1 = new Vector(1, 2); Vector v2 = new Vector(3, 4); Vector v3 = v1.add(v2); // Note the use of the add() method System.out.println("v3.x = " + v3.x + ", v3.y = " + v3.y); // Output: v3.x = 4, v3.y = 6 } }
Kotlin の演算子のオーバーロードは、言語を拡張し、より表現力豊かなコードを作成するための強力な方法を提供します。それは、オペレーターがルールに従って踊り、変身する数学的マジック ショーを指先で見るようなものです。したがって、Kotlin の魔法を受け入れ、算術演算の境界を再定義する準備ができている場合は、演算子のオーバーロードを始めましょう。 ✨
追伸 あなたがまだ伝統的な算術規則に縛られている Java 開発者であれば、心配する必要はありません。適切な名前のメソッドを使用すれば、いつでも同様の結果を得ることができます。魔法ほどではないかもしれませんが、それでも効果はあります。 ?
以上がKotlin オペレーターのオーバーロード vs. Java: 数学的マジック ショー (Kotlin がルールを曲げる場所!)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。