【Ruby3.x】Enumerator::ArithmeticSequence::===()メソッドの使い方
===メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
===メソッドは、Enumerator::ArithmeticSequenceオブジェクトが指定された値を含むかどうかを判定するメソッドです。
Enumerator::ArithmeticSequenceは、Rubyにおいて等差数列を表現し、その要素を順に処理するためのオブジェクトです。例えば、1から10までの偶数や5から50までを5ずつ増やす数といった、一定の規則で増減する数値の並びを扱う際に用いられます。
この===メソッドは、主にcase文のwhen節などで使用される「スマートマッチ」と呼ばれる等価性判定を行います。左辺にEnumerator::ArithmeticSequenceオブジェクト、右辺に比較したい値を置いた場合、その値が等差数列の範囲内にあり、かつ数列の公差(ステップ)に適合する要素であるかを厳密に評価します。
つまり、単に値が数列の最小値と最大値の間にあればよいというわけではなく、数列の規則性(公差)も満たしている必要があります。これにより、ある値が特定の等差数列のパターンに沿っているかを簡潔かつ正確に判断することが可能です。
Rubyの===メソッドは、このようにオブジェクトのタイプに応じて多様な等価性判定を提供し、コードの記述をより柔軟にするための強力な機能の一つです。
構文(syntax)
1(1..10).step(2) === 5
引数(parameters)
req
- other: Integer, Range, other Numeric: 比較対象の整数、範囲、または数値
戻り値(return)
Boolean
指定された値が、この算術数列の範囲内に含まれるかどうかを真偽値 (true または false) で返します。