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


Ruby Enumerable.min用法及代码示例


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

用法

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

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

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

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

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

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

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

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

  • 如果 a == b 则为零。

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

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

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

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

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

相关: min_by minmax max

相关用法


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