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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。