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


Ruby Enumerable.max用法及代码示例


本文简要介绍ruby语言中 Enumerable.max 的用法。

用法

max → element
max(n) → array
max {|a, b| ... } → element
max(n) {|a, b| ... } → array

根据给定标准返回具有最大元素的元素。相等元素的顺序是不确定的并且可能是不稳定的。

没有参数也没有块,返回最大元素,使用元素自己的方法<=>进行比较:

(1..4).max                   # => 4
(-4..-1).max                 # => -1
%w[d c b a].max              # => "d"
{foo: 0, bar: 1, baz: 2}.max # => [:foo, 0]
[].max                       # => nil

给定正整数参数n,并且没有块,返回一个数组,其中包含存在的第一个 n 最大元素:

(1..4).max(2)                   # => [4, 3]
(-4..-1).max(2)                # => [-1, -2]
%w[d c b a].max(2)              # => ["d", "c"]
{foo: 0, bar: 1, baz: 2}.max(2) # => [[:foo, 0], [:baz, 2]]
[].max(2)                       # => []

给定一个块,该块确定最大元素。使用两个元素 ab 调用该块,并且必须返回:

  • 如果 a < b 则为负整数。

  • 如果 a == b 则为零。

  • 如果 a > b 则为正整数。

给定块且不带参数,返回由块确定的最大元素:

%w[xxx x xxxx xx].max {|a, b| a.size <=> b.size } # => "xxxx"
h = {foo: 0, bar: 1, baz: 2}
h.max {|pair1, pair2| pair1[1] <=> pair2[1] }     # => [:baz, 2]
[].max {|a, b| a <=> b }                          # => nil

使用给定的块和给定的正整数参数n,返回一个数组,其中包含由块确定的存在的第一个 n 最大元素。

%w[xxx x xxxx xx].max(2) {|a, b| a.size <=> b.size } # => ["xxxx", "xxx"]
h = {foo: 0, bar: 1, baz: 2}
h.max(2) {|pair1, pair2| pair1[1] <=> pair2[1] }
# => [[:baz, 2], [:bar, 1]]
[].max(2) {|a, b| a <=> b }                          # => []

相关: min minmax max_by

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Enumerable.max。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。