【Ruby3.x】Class::subclasses()メソッドの使い方
subclassesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
subclassesメソッドは、レシーバであるクラスの直接の子クラス(サブクラス)の配列を返します。このメソッドはClassクラスに属しており、任意のクラスから呼び出すことができます。
具体的には、あるクラスXに対してX.subclassesと呼び出すと、クラスXを直接継承しているすべてのクラスが配列として得られます。この配列には、Xの直接の子クラスのみが含まれ、それより深い階層のクラスは含まれません。例えば、ParentがChildに継承されている場合、Parent.subclassesは[Child]を返します。
このメソッドは、クラスの階層構造をプログラムで動的に探索したり、特定の親クラスから派生したすべての子クラスに対して一括で処理を実行したりする際に有用です。拡張可能なアプリケーションにおいて、特定の基底クラスを継承したすべてのプラグインクラスを自動的に検出するといった用途が考えられます。
subclassesメソッドは、Ruby 3.0で導入された機能であり、これによりクラスの動的な探索や管理がより簡潔かつ効率的に行えるようになりました。返される配列の要素は、すべてClassオブジェクトです。
構文(syntax)
1class BaseClass 2end 3 4class SubClassA < BaseClass 5end 6 7class SubClassB < BaseClass 8end 9 10p BaseClass.subclasses
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
このメソッドは、このクラスを直接継承している(サブクラスになっている)クラスの配列を返します。