instance method Range#min

min -> object | nil[permalink][rdoc][edit]
min(n) -> [object]

範囲内の最小の値、もしくは最小の n 要素を返します。

[PARAM] n:
取得する要素数。


(1..5).min    # => 1


(1..5).min(3) # => [1, 2, 3]

始端が終端より大きい場合、もしくは、終端を含まない範囲オブジェクトの始端が終端と等しい場合は、引数を指定しない形式では nil を返します。引数を指定する形式では、空の配列を返します。



(2..1).min     # => nil
(1...1).min    # => nil


(2..1).min(3)  # => []
(1...1).min(3) # => []
min {|a, b| ... } -> object | nil[permalink][rdoc][edit]
min(n) {|a, b| ... } -> [object]

ブロックの評価結果で範囲内の各要素の大小判定を行い、最小の要素、もしくは最小の n 要素を返します。引数を指定しない形式では、範囲内に要素が存在しなければ nil を返します。引数を指定する形式では、空の配列を返します。

ブロックの値は、a > b のとき正、a == b のとき 0、 a < b のとき負の整数を、期待しています。

[PARAM] n:
取得する要素数。
[EXCEPTION] TypeError:
ブロックが整数以外を返したときに発生します。

[SEE_ALSO] Range#first, Range#max, Enumerable#min



h = { 1 => "C", 2 => "Go", 3 => "Ruby" }
(1..3).min { |a, b| h[a].length <=> h[b].length }    # => 1


(1..3).min(2) { |a, b| h[a].length <=> h[b].length } # => [1, 2]