當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Enumerable.sort用法及代碼示例


本文簡要介紹ruby語言中 Enumerable.sort 的用法。

用法

sort → array
sort {|a, b| ... } → array

返回一個包含 self 的排序元素的數組。相等元素的順序是不確定的並且可能是不穩定的。

在沒有給出塊的情況下,排序使用元素自己的方法<=>進行比較:

%w[b c a d].sort              # => ["a", "b", "c", "d"]
{foo: 0, bar: 1, baz: 2}.sort # => [[:bar, 1], [:baz, 2], [:foo, 0]]

在給定塊的情況下,塊中的比較確定順序。使用兩個元素 ab 調用該塊,並且必須返回:

  • 如果 a < b 則為負整數。

  • 如果 a == b 則為零。

  • 如果 a > b 則為正整數。

例子:

a = %w[b c a d]
a.sort {|a, b| b <=> a } # => ["d", "c", "b", "a"]
h = {foo: 0, bar: 1, baz: 2}
h.sort {|a, b| b <=> a } # => [[:foo, 0], [:baz, 2], [:bar, 1]]

另見 sort_by 。它實現了一個 Schwartzian 變換,這在 key 計算或比較很昂貴時很有用。

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Enumerable.sort。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。