本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。