【Ruby3.x】Date::Infinity::<=>()メソッドの使い方
<=>メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
<=>メソッドは Date::Infinity オブジェクトが他のオブジェクトと比較された際に、その順序関係を判定するメソッドです。Date::Infinity クラスは、日付や時刻の文脈において「無限大」を表現するための特殊なオブジェクトであり、未来への無限大(正の無限大)と過去への無限大(負の無限大)の二種類が存在します。
本メソッドは、自身(Date::Infinity オブジェクト)が引数として渡されたオブジェクトよりも小さい場合は -1 を、等しい場合は 0 を、大きい場合は 1 を返します。この 1、0、-1 という戻り値は、比較可能なオブジェクト間で順序を定めるための共通のルールです。
具体的には、Date::Infinity の正の無限大オブジェクトは、いかなる有限の日付や時刻オブジェクトよりも常に大きいと判定されます。そのため、正の無限大オブジェクトを比較元とすると、有限の日付や時刻との比較では常に 1 を返します。また、負の無限大オブジェクトとの比較でも 1 を返します。
一方、Date::Infinity の負の無限大オブジェクトは、いかなる有限の日付や時刻オブジェクトよりも常に小さいと判定されます。そのため、負の無限大オブジェクトを比較元とすると、有限の日付や時刻との比較では常に -1 を返します。正の無限大オブジェクトとの比較でも -1 を返します。
同じ種類の無限大オブジェクト同士、例えば正の無限大と正の無限大を比較した場合は 0 を返します。このメソッドは、Date::Infinity オブジェクトがコレクション内で正しくソートされたり、他の値と比較されて条件分岐に利用されたりする際に用いられます。
構文(syntax)
1require 'date' 2 3Date::INFINITY <=> other_object
引数(parameters)
other
- other: 比較対象の
Date::Infinityオブジェクト
戻り値(return)
Integer
Date::Infinity#<=> は、Date::Infinity オブジェクトと別のオブジェクトを比較した結果を整数で返します。比較対象が Date::Infinity オブジェクトより小さい場合は -1、等しい場合は 0、大きい場合は 1 を返します。