【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 が返されます。