【Ruby3.x】Module::==()メソッドの使い方
==メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
==メソッドは、二つのオブジェクトが全く同じクラスまたはモジュールであるかどうかを比較し、その結果を真偽値(trueまたはfalse)で返すメソッドです。
Rubyにおいて、一般的なオブジェクトの==メソッドは、主に「値が等しいか」を判定するために使われます。例えば、内容が同じであれば異なるオブジェクトであってもtrueを返す場合があります。しかし、Moduleクラスにおける==メソッドは、これとは異なり、比較対象の二つの参照が「完全に同一のクラスまたはモジュールオブジェクトを指しているか」を厳密に判定します。
これは、複数の変数があるときに、それらの変数が全く同じひとつのクラスやモジュールを参照しているかどうかを確認する際に役立ちます。例えば、MyClass == MyClassはtrueを返しますが、MyClassと全く同じ構造を持つ別のクラスオブジェクトAnotherClassが存在したとしても、MyClass == AnotherClassはfalseとなります。これは、たとえ見た目や振る舞いが同じに見えても、メモリ上で異なる実体として扱われているためです。
このメソッドは、プログラムが特定の、唯一無二のクラスやモジュールであることを確認する必要がある場面で利用されます。例えば、フレームワークの内部処理で特定のモジュールが組み込まれているかを確認したり、メタプログラミングにおいてクラスの同一性をチェックしたりする際に活用されます。
構文(syntax)
1class MyClass 2end 3 4class AnotherClass 5end 6 7puts MyClass == MyClass 8puts MyClass == AnotherClass
引数(parameters)
req
- obj: Object: 比較対象のオブジェクト
戻り値(return)
Boolean
二つのモジュールが等しい場合にtrueを、そうでない場合にfalseを返します。