【Ruby3.x】BasicObject::==()メソッドの使い方
==メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
==メソッドは、二つのオブジェクトが「同一であるか」を比較するメソッドです。
このメソッドは、Rubyの全てのオブジェクトの最も基本的な親クラスであるBasicObjectに定義されており、すべてのオブジェクトがデフォルトでこの比較機能を持っています。
BasicObjectにおける==の基本的な動作は、比較する二つのオブジェクトがメモリ上で「全く同じインスタンス」を指しているかどうかを判定することです。
もし両方のオブジェクトが完全に同じ実体を参照している場合、このメソッドはtrueを返します。
そうでない場合は、たとえ見た目の「値」が同じであったとしてもfalseを返します。
例えば、a = Object.newとb = aとした場合、a == bはtrueになりますが、c = Object.newとした場合、a == cはfalseになります。これは、aとcがそれぞれ異なるインスタンスだからです。
この==メソッドは、オブジェクトの参照が一致するかどうか、つまり二つの変数が完全に同じ一つのオブジェクトを指しているかどうかを確認する際に利用されます。
Rubyでは、Objectクラスやそのサブクラスにおいて、この==メソッドがオーバーライド(再定義)され、オブジェクトの値が等しいかどうかの比較に使われることが一般的ですが、BasicObjectの時点では厳密なオブジェクト同一性の比較を行う点に注意が必要です。
これにより、プログラマはオブジェクトの同一性と値の等価性を区別して扱うことが可能になります。
構文(syntax)
1object1 == object2
引数(parameters)
req
- obj: 比較対象のオブジェクト
戻り値(return)
Boolean
二つのオブジェクトが等しい場合に true を、そうでない場合に false を返します。