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

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

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

作成日: 更新日:

基本的な使い方

<=>メソッドは、File::Statクラスのインスタンスである2つのファイル情報を比較し、それらの相対的な順序を決定するメソッドです。File::Statオブジェクトは、特定のファイルに関するサイズ、更新日時、最終アクセス日時、パーミッションなどの詳細な情報を持つオブジェクトです。この<=>メソッドは、呼び出し元のFile::Statオブジェクトと、比較対象として引数に渡された別のFile::Statオブジェクトの持つファイル情報を比較します。

比較の結果は、数値で表現されます。もし呼び出し元のオブジェクトが引数のオブジェクトよりも「小さい」と判断される場合(内部的な比較基準による)、メソッドは-1を返します。両方のオブジェクトが「等しい」と判断される場合は0を返します。そして、呼び出し元のオブジェクトが引数のオブジェクトよりも「大きい」と判断される場合は1を返します。

このメソッドは、主にArrayクラスのsortメソッドやsort_byメソッドなど、コレクション内の要素を並べ替える際に使用されます。例えば、複数のファイルのFile::Statオブジェクトを保持する配列を、ファイル情報の何らかの基準(実装に依存)で効率的にソートしたい場合に、この<=>メソッドが提供する比較ロジックが利用されます。これにより、システム内でファイル情報を基にしたデータの整理や分析を柔軟に行うことができます。

構文(syntax)

1File.write("temp_file_a.txt", "Ruby is awesome.")
2File.write("temp_file_b.txt", "Learning Ruby is fun.")
3
4stat_a = File.stat("temp_file_a.txt")
5stat_b = File.stat("temp_file_b.txt")
6
7comparison_result = stat_a <=> stat_b

引数(parameters)

other

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

戻り値(return)

Integer | nil

File::Stat#<=> は、2つの File::Stat オブジェクトを比較した結果を整数または nil で返します。 比較結果は、最初のオブジェクトが2番目のオブジェクトより小さい場合は負の整数、等しい場合は 0、大きい場合は正の整数で返されます。 比較できない場合は nil が返されます。

関連コンテンツ

関連プログラミング言語