【Ruby3.x】Enumerator::ArithmeticSequence::eql?()メソッドの使い方
eql?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
eql?メソッドは、Enumerator::ArithmeticSequenceオブジェクトが、指定された別のオブジェクトと厳密に等しいかどうかを判定するメソッドです。このメソッドは、自身が持つ算術数列の定義が、比較対象のオブジェクトと完全に一致するかを確認するために利用されます。
具体的には、eql?メソッドは以下の条件をすべて満たす場合にのみtrueを返します。
まず、比較対象のオブジェクトがEnumerator::ArithmeticSequenceのインスタンスであること。
次に、両者の「開始値(begin)」、「終了値(end)」、「ステップ値(step)」、そして「終了値を含まない設定(exclude_end?)」の四つの属性が完全に一致することです。これら四つの属性のうち一つでも異なる点があれば、eql?メソッドはfalseを返します。
このeql?メソッドは、RubyのHash(ハッシュ)のキーとしてオブジェクトを利用する際に特に重要になります。ハッシュはキーの一意性を保証するためにオブジェクトの等価性を判断しますが、その判断基準の一つとしてeql?メソッドが内部的に使用されます。これにより、同じ定義を持つEnumerator::ArithmeticSequenceオブジェクトが、ハッシュのキーとして重複なく、期待通りに扱われることが保証されます。
構文(syntax)
1(1..10).step(2).eql?((1..10).step(2))
引数(parameters)
req
- other: 比較対象の
Enumerator::ArithmeticSequenceオブジェクト
戻り値(return)
Boolean
2つの算術数列が、要素の個数、開始値、終了値、ステップ値のすべてにおいて等しい場合に真 (true) を返します。そうでない場合は偽 (false) を返します。