当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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