【Ruby3.x】Module::class_variables()メソッドの使い方
class_variablesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
class_variablesメソッドは、特定のクラスやモジュールで定義されているクラス変数の名前のリストを取得するメソッドです。
クラス変数は、@@を先頭に付けて定義され、そのクラスとそれを継承するすべてのサブクラス、およびインクルードされたモジュール全体で共有される変数です。このメソッドは、引数によって異なる挙動を示します。
引数を指定しない場合や、falseを引数に渡した場合、呼び出し元のモジュールまたはクラス自身に直接定義されているクラス変数のみを、シンボルの配列として返します。この場合、スーパークラスから継承されたり、インクルードされたモジュールから引き継がれたりしたクラス変数は含まれません。
一方、trueを引数に渡すと、そのモジュールやクラス自身に定義されたクラス変数に加え、スーパークラスから継承されたり、インクルードされたモジュールから引き継がれたりする、すべてのクラス変数が含まれたリストをシンボルの配列として返します。
このメソッドは、特定のクラスやモジュールの内部状態を動的に調査したい場合や、プログラムのデバッグ、あるいはリフレクション機能を利用する際に有用です。
構文(syntax)
1class MyClass 2 @@class_var1 = 10 3 @@class_var2 = "hello" 4end 5 6p MyClass.class_variables
引数(parameters)
inherit = true
- inherit: bool = true: 親クラスのクラス変数を継承するかどうかを指定します。
trueの場合は継承し、falseの場合は継承しません。
戻り値(return)
Array<Symbol>
Moduleクラスで定義されたクラス変数の一覧を、シンボル(Symbol)の配列として返します。