【Ruby3.x】Method::===()メソッドの使い方
===メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
===メソッドは、自身が保持するメソッドを呼び出し、その実行結果を返すメソッドです。Rubyにおける===(トリプルイコール)は「ケース等価演算子」とも呼ばれ、主にcase文のwhen節で条件を判定する際に利用されます。例えば、正規表現が文字列にマッチするか、値が特定の範囲に含まれるかなどを判定するために使われることが多いです。
Methodクラスに属するこの===メソッドは、レシーバであるMethodオブジェクトが指し示すメソッドを、引数として渡された値で実際に実行します。そして、そのメソッドの実行によって得られた値を、===メソッドの評価結果として返します。この動作は、Method#callメソッドと等しい振る舞いです。
この特性により、Methodオブジェクトを直接case文のwhen節に記述することで、指定したメソッドを呼び出し、その結果が真と評価される場合に処理を実行させることができます。これは、メソッド自体を柔軟な条件判定のパターンとして利用するための機能です。この===メソッドは、メソッドを「実行可能なパターン」として扱い、与えられた引数で実行した結果をそのまま返します。
構文(syntax)
1method_object === other_method_object
引数(parameters)
*args
- args: Method オブジェクトが比較される値。可変長引数として受け取られます。
戻り値(return)
Object
Method#=== は、レシーバである Method オブジェクトが、引数として渡されたオブジェクトと等価である場合に true を返します。そうでない場合は false を返します。