【Ruby3.x】Array::sort()メソッドの使い方
sortメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
sortメソッドは、配列の要素を特定の順序で並び替えた、新しい配列を生成して返すメソッドです。このメソッドは非破壊的であり、元の配列そのものは一切変更されません。ソートの結果だけを新しい配列として取得したい場合に利用します。
要素の並び替えの基準は、ブロックを渡すかどうかによって変わります。ブロックを渡さない場合、配列の各要素に実装されている<=>(宇宙船演算子)メソッドを用いて要素同士を比較し、その結果に基づいて昇順に並び替えます。例えば数値の配列であれば小さい値から大きい値へ、文字列の配列であれば辞書順に並びます。
一方、ブロックを渡した場合、そのブロックがソートの基準となります。ブロックは並び替え対象となる2つの要素を引数として受け取り、それらを比較した結果を-1(左が右より小さい)、0(等しい)、1(左が右より大きい)のいずれかの数値で返す必要があります。この戻り値に基づいて、要素の最終的な順序が決定されます。これにより、標準の比較ロジックとは異なる、独自の複雑な基準で配列を並び替えることが可能になります。
最終的に、sortメソッドは、常にソート済みの新しい配列を返却するため、元のデータを安全に保ちながら、必要な順序でデータを利用する際に非常に有用です。
構文(syntax)
1[3, 1, 2].sort
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
ソートされた新しい配列を返します。元の配列は変更されません。