【Ruby3.x】NilClass::=~()メソッドの使い方
=~メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
=~メソッドは、nilオブジェクトに対して正規表現マッチングを試みるメソッドです。
NilClassは、Rubyにおいて「何もない」状態、つまり値が存在しないことを示す特別なオブジェクトであるnilのクラスです。Rubyの=~演算子は、通常、文字列に対して正規表現パターンがマッチするかどうかを判定し、マッチした場合はその位置を示す整数を、マッチしない場合はnilを返します。
しかし、NilClassに属するnilオブジェクトに対してこの=~メソッドが呼び出された場合、引数としてどのような正規表現パターンが渡されたとしても、常にnilを返します。これは、nilが「値がない」状態そのものを表しており、正規表現が適用されるべき具体的な文字列データを保持していないためです。そのため、nilは正規表現とのマッチングの対象にはなりえません。
この特性は、プログラム内で文字列の可能性がある変数を正規表現マッチングにかけた際に、もしその変数がnilであったとしても、エラー(例外)が発生するのを防ぎ、安全に処理を進められるという利点があります。例えば、if 変数 =~ /パターン/ のような条件式で、変数がnilの場合でも、nil =~ /パターン/の結果がnilとなり、条件が自動的に偽と評価されるため、余分なnilチェックを記述することなく簡潔なコードを記述できます。
構文(syntax)
1nil =~ /pattern/
引数(parameters)
obj
- obj: マッチング対象となるオブジェクト
戻り値(return)
NilClass
このメソッドは、レシーバーであるnilオブジェクトと、引数で渡された正規表現とのマッチングを試みます。nilオブジェクトはどのような正規表現ともマッチしないため、常にnilを返します。