【Ruby3.x】Module::<=()メソッドの使い方
<=メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
<=メソッドは、レシーバであるモジュールまたはクラスが、引数で指定されたモジュールまたはクラスとどのような関係にあるかを判定するメソッドです。
このメソッドは、レシーバが引数otherと全く同じモジュールまたはクラスである場合、あるいはレシーバがotherのサブクラス(子孫クラス)である場合にtrueを返します。例えば、String <= Object と記述すると、StringクラスはObjectクラスのサブクラスであるためtrueとなります。
また、レシーバと引数otherが両方ともモジュールの場合に限り、レシーバがotherをインクルードしている場合もtrueを返します。例えば、module N; include M; end という関係の場合、N <= M はtrueとなります。これは、モジュールNがモジュールMの機能を取り込んでいることを意味します。
これらの条件に一つも当てはまらない場合はfalseを返します。もし引数otherがModuleクラスまたはClassクラスのインスタンスではない場合は、関係性を判定できないためnilを返します。
このメソッドは、プログラム中で特定のクラスやモジュールが期待される特性や振る舞いを持っているか、または特定の継承階層に属しているかを動的に確認する際に役立ちます。これにより、安全で堅牢なコードを記述しやすくなります。
構文(syntax)
1String <= Object
引数(parameters)
other
- other: 比較対象となるモジュールまたはシンボル
戻り値(return)
Boolean
指定されたモジュールが、レシーバのモジュールまたはクラスの祖先(スーパークラスやインクルードしているモジュール)に含まれている場合に true を、そうでない場合に false を返します。