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

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

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

作成日: 更新日:

基本的な使い方

<=>メソッドは、レシーバ(自分自身)である浮動小数点数と、引数として渡された別の浮動小数点数を比較し、その大小関係を示す整数値を返すメソッドです。

このメソッドは、比較の結果に応じて次のいずれかの整数値を返します。レシーバが引数より小さい場合は -1 を返し、レシーバと引数が等しい場合は 0 を返し、レシーバが引数より大きい場合は 1 を返します。

特に、浮動小数点数特有のNaN (Not a Number) との比較においては、他のいかなる数値とも大小関係を決定できないという特性のため、nil を返します。例えば、Float::NAN <=> 1.0 のような比較では nil が返されるため、この戻り値に対する適切なハンドリングが重要になります。

この演算子は、主にソート処理などで要素の順序を決定する際に利用されます。配列内の数値データを昇順や降順に並べ替える際、sortメソッドの内部などでこの比較ロジックが活用されることがあります。システムエンジニアを目指す初心者の方にとっては、浮動小数点数の比較には特有の注意点があり、特に NaN との比較で nil が返される挙動を理解しておくことは、予期せぬバグを防ぎ、より堅牢なプログラムを作成するために非常に重要です。このメソッドは、浮動小数点数の相対的な大小関係を厳密に評価する必要がある場面で強力なツールとなります。

構文(syntax)

1float_value <=> other_numeric_value

引数(parameters)

req

  • other: Float: 比較対象のFloatオブジェクト

戻り値(return)

Integer, nil

Floatクラスの <=> メソッドは、レシーバーとなるFloatオブジェクトと引数として渡されたFloatオブジェクトを比較し、その結果をIntegerまたはnilで返します。レシーバーが引数よりも大きい場合は1、等しい場合は0、小さい場合は-1を返します。比較ができない場合(例えばnilが渡された場合など)はnilを返します。

関連コンテンツ

関連プログラミング言語