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

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

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

作成日: 更新日:

基本的な使い方

<=>メソッドは、二つのTimeオブジェクトの前後関係を比較するメソッドです。このメソッドは、呼び出し元のTimeオブジェクト(レシーバ)と、引数として渡された別のTimeオブジェクトを比較し、その結果を数値で返します。

具体的には、呼び出し元の時間が引数の時間よりも過去である場合、メソッドは-1を返します。これは、呼び出し元の時間が「より早い」と判断されることを意味します。両方のTimeオブジェクトがまったく同じ時間を指している場合、メソッドは0を返します。これは、両者が「等しい」と判断されることを意味します。そして、呼び出し元の時間が引数の時間よりも未来である場合、メソッドは1を返します。これは、呼び出し元の時間が「より遅い」と判断されることを意味します。

もし、引数がTimeオブジェクトではないなど、適切に比較できない場合にはnilを返します。この<=>メソッドは、Timeオブジェクトを扱う上で非常に基本的かつ重要な機能であり、例えば複数のTimeオブジェクトを時系列順に並べ替えたい場合などに内部的に利用されます。Arraysortメソッドは、この<=>メソッドを使って要素間の順序を決定します。システム開発で時刻データを扱う際、時間の比較は不可欠な操作であり、このメソッドは堅牢な比較ロジックを提供します。

構文(syntax)

1Time.new(2023, 1, 1, 12, 0, 0) <=> Time.new(2023, 1, 1, 13, 0, 0)

引数(parameters)

other

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

戻り値(return)

Integer or nil

Time オブジェクト同士を比較した結果を返します。比較対象の Time オブジェクトが自身より後の時刻であれば 1、同じ時刻であれば 0、前の時刻であれば -1 を返します。比較できない場合は nil を返します。

関連コンテンツ

関連プログラミング言語