【Ruby3.x】TracePoint::parameters()メソッドの使い方
parametersメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
parametersメソッドは、Rubyの実行トレースを監視するTracePointオブジェクトが、メソッド呼び出しやブロック呼び出しといったイベントを捕捉した際に、その呼び出しに関連する引数の情報を取得するメソッドです。このメソッドは、各引数の種類と名前のペアを要素とする配列の配列を返します。例えば、[[:req, :arg1], [:opt, :arg2]]のような形式で、必須引数arg1やオプション引数arg2といった引数情報を提供します。
返される引数の種類には、必須引数を表す:req、オプション引数を表す:opt、可変長引数を表す:rest、必須キーワード引数を表す:keyreq、オプションキーワード引数を表す:key、可変長キーワード引数を表す:keyrest、そしてブロック引数を表す:blockなどがあります。これらの情報は、メソッドやブロックが定義されている際の引数の特性を示します。
この情報を使用することで、Rubyプログラムの実行中に、特定のメソッドやブロックがどのような引数の定義で呼び出されたかを詳細に分析することが可能になります。特に、デバッグ時に関数の入力値を追跡したり、動的なコード解析を行う際に、メソッドやブロックのシグネチャ情報を実行時に確認するのに役立ち、プログラムの挙動を深く理解するための手助けとなります。
構文(syntax)
1tp = TracePoint.new(:call) do |trace| 2 trace.parameters 3end 4tp.enable 5def example_method(arg1, arg2 = 1, *rest_args, keyword_arg:, **rest_keywords, &block_arg); end 6example_method(10, keyword_arg: 'hello') {} 7tp.disable
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
TracePointクラスのparametersメソッドは、現在実行中のメソッドの引数情報を配列で返します。この配列には、引数の名前や種類などが格納されています。