Rubyの公式ドキュメントから:
sort → new_ary sort { |a, b| block } → new_ary 自分自身をソートして作成した新しい配列を返します。
並べ替えの比較は、<=> 演算子またはオプションのコード ブロックを使用して行われます。
ブロックは a と b の比較を実装し、a が b に続く場合は -1、a と b が等しい場合は 0、b が a に続く場合は +1 を返す必要があります。
Enumerable#sort_by も参照してください。
a = [ "d", "a", "e", "c", "b" ]
a.sort #=> ["a", "b", "c", "d", "e"]
a.sort { |x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
選別!→ クリックしてソースの並べ替えを切り替えます! { |a, b| block } → ary 自分自身をその場でソートします。
並べ替えの比較は、<=> 演算子またはオプションのコード ブロックを使用して行われます。
ブロックは a と b の比較を実装し、a が b に続く場合は -1、a と b が等しい場合は 0、b が a に続く場合は +1 を返す必要があります。
Enumerable#sort_by も参照してください。
a = [ "d", "a", "e", "c", "b" ]
a.sort! #=> ["a", "b", "c", "d", "e"]
a.sort! { |x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
結果は同じように見えますが、違いは何ですか?