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

【Ruby3.x】Float::eql?()メソッドの使い方

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

作成日: 更新日:

基本的な使い方

eql?メソッドは、RubyのFloatクラスに属し、自身の浮動小数点数オブジェクトが、比較対象の他のオブジェクトと厳密に等しいかどうかを判定するメソッドです。このメソッドは、二つのオブジェクトの値が完全に一致することに加え、それらのオブジェクトの型も両方ともFloatである場合にのみtrueを返します。

Rubyにはオブジェクトの等価性を確認するための複数の方法がありますが、eql?メソッドはその中でも特に厳密な比較を行う点が特徴です。例えば、一般的に使用される==演算子(ダブルイコール)は、値が等しければ異なる数値型同士でも等しいと判断することがあります。具体的には、浮動小数点数の1.0と整数の1は、1.0 == 1 の比較ではtrueとなります。しかし、eql?メソッドの場合、値が同じであっても型が異なるオブジェクトは等しいとは見なしません。したがって、1.0.eql?(1) を実行するとfalseが返されます。

この型まで考慮する厳密な比較は、プログラム中でハッシュのキーとしてFloatオブジェクトを使用する際に特に重要となります。Rubyのハッシュは、キーの等価性を判定する目的でeql?メソッドとhashメソッドを利用します。そのため、もしあなたがハッシュのキーにFloat型の値を使用する場合、値が同じであっても型が異なるオブジェクトは異なるキーとして扱われます。これにより、ハッシュが意図しない挙動を起こすことを防ぎ、データの整合性を保つ上で役立ちます。

eql?メソッドは引数として任意のオブジェクトを受け入れ、比較の結果として、両者が厳密に等しい場合はtrueを、それ以外の場合はfalseを返します。システムエンジニアを目指す上で、オブジェクトの厳密な等価性を理解し、適切な場面でこのメソッドを選択することは非常に重要です。

構文(syntax)

11.0.eql?(1.0)

引数(parameters)

other

  • other: 比較対象となるFloatオブジェクト

戻り値(return)

Boolean

Floatクラスのeql?メソッドは、レシーバーであるFloatオブジェクトと引数として渡されたオブジェクトが、値と型において完全に等しい場合にtrueを、そうでない場合にfalseを返します。

関連コンテンツ

関連プログラミング言語