Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】String::===()メソッドの使い方

===メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

===メソッドは、Stringオブジェクトと他のオブジェクトとの間で、主にcase文で使用される特別な比較を実行するメソッドです。

具体的には、左辺のStringオブジェクトが、右辺に与えられたオブジェクトと等価であるかどうかを判定し、その結果を真偽値(trueまたはfalse)で返します。他の多くのオブジェクトにおける===メソッドと同様に、Stringクラスの===メソッドは、基本的に==演算子とほぼ同じ働きをします。つまり、二つの文字列が内容的に完全に一致するかどうかを確認します。例えば、"Ruby" === "Ruby"true となり、"Ruby" === "ruby"false となります。

このメソッドの主な用途は、Rubyのcase文のwhen節です。case文では、when節の値がレシーバ(呼び出し元)となり、case文の式の値が引数として渡されて===メソッドが呼び出されます。Stringオブジェクトが左辺にあり、右辺に比較対象の文字列が与えられた場合、文字列の内容が一致するかどうかを判定します。

ただし、case "テキスト" when /パターン/ のように、when節に正規表現オブジェクトが指定された場合は、実際には正規表現オブジェクト側のRegexp#===メソッドが呼び出されます。このとき、文字列が正規表現にマッチするかどうかが判定されます。これは、Rubyのcase文がwhen節のオブジェクトの===メソッドを呼び出す仕組みによるものです。

このように、String#===メソッドは文字列の等価性を確認する基本的な機能を提供しつつ、case文の柔軟なパターンマッチングにおいて重要な役割を果たしています。

構文(syntax)

1"hello" === "hello"

引数(parameters)

req

  • pattern: String, Regexp, Array, Hash, Range, nil, false, true, Integer, Symbol: 比較対象となるオブジェクト

戻り値(return)

Boolean

指定された文字列がレシーバー文字列に含まれている場合に真 (true) を、含まれていない場合に偽 (false) を返します。

関連コンテンツ

関連プログラミング言語