本文簡要介紹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]]
在給定塊的情況下,塊中的比較確定順序。使用兩個元素 a
和 b
調用該塊,並且必須返回:
-
如果
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 Enumerable.sort_by用法及代碼示例
- Ruby Enumerable.slice_before用法及代碼示例
- Ruby Enumerable.sum用法及代碼示例
- Ruby Enumerable.slice_after用法及代碼示例
- Ruby Enumerable.slice_when用法及代碼示例
- Ruby Enumerable.select用法及代碼示例
- Ruby Enumerable.any?用法及代碼示例
- Ruby Enumerable.uniq用法及代碼示例
- Ruby Enumerable.find_all用法及代碼示例
- Ruby Enumerable.max用法及代碼示例
- Ruby Enumerable.map用法及代碼示例
- Ruby Enumerable.min_by用法及代碼示例
- Ruby Enumerable.find_index用法及代碼示例
- Ruby Enumerable.minmax用法及代碼示例
- Ruby Enumerable.drop用法及代碼示例
- Ruby Enumerable.member?用法及代碼示例
- Ruby Enumerable.each_cons用法及代碼示例
- Ruby Enumerable.entries用法及代碼示例
- Ruby Enumerable.flat_map用法及代碼示例
- Ruby Enumerable.reject用法及代碼示例
- Ruby Enumerable.each_with_index用法及代碼示例
- Ruby Enumerable.filter_map用法及代碼示例
- Ruby Enumerable.all?用法及代碼示例
- Ruby Enumerable.take用法及代碼示例
- Ruby Enumerable.reduce用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Enumerable.sort。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。