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


Ruby Range.min用法及代碼示例


本文簡要介紹ruby語言中 Range.min 的用法。

用法

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

返回 self 中的最小值,使用方法 <=> 或給定塊進行比較。

沒有參數也沒有給出塊,返回 self 的 minimum-valued 元素。

(1..4).min     # => 1
('a'..'d').min # => "a"
(-4..-1).min   # => -4

在給定非負整數參數 n 且未給出塊的情況下,返回數組中 selfn minimum-valued 元素:

(1..4).min(2)     # => [1, 2]
('a'..'d').min(2) # => ["a", "b"]
(-4..-1).min(2)   # => [-4, -3]
(1..4).min(50)    # => [1, 2, 3, 4]

如果給定一個塊,則調用它:

  • 首先,使用 self 的前兩個元素。

  • 然後,依次使用 so-far 最小值和 self 的下一個元素。

為了顯示:

(1..4).min {|a, b| p [a, b]; a <=> b } # => 1

輸出:

[2, 1]
[3, 1]
[4, 1]

沒有參數和給定塊,返回最後一次調用塊的返回值:

(1..4).min {|a, b| -(a <=> b) } # => 4

給定非負整數參數 n 和一個塊,返回最後一個 n 調用數組中的塊的返回值:

(1..4).min(2) {|a, b| -(a <=> b) }  # => [4, 3]
(1..4).min(50) {|a, b| -(a <=> b) } # => [4, 3, 2, 1]

如果 n 為零,則返回一個空數組:

(1..4).min(0)                      # => []
(1..4).min(0) {|a, b| -(a <=> b) } # => []

如果滿足以下條件,則返回 nil 或空數組:

  • 範圍的開始值大於結束值:

    (4..1).min                         # => nil
    (4..1).min(2)                      # => []
    (4..1).min {|a, b| -(a <=> b) }    # => nil
    (4..1).min(2) {|a, b| -(a <=> b) } # => []
  • 獨占範圍的開始值等於結束值:

    (1...1).min                          # => nil
    (1...1).min(2)                       # => []
    (1...1).min  {|a, b| -(a <=> b) }    # => nil
    (1...1).min(2)  {|a, b| -(a <=> b) } # => []

如果出現以下任一情況,則引發異常:

  • self 是一個無始範圍: (..4)

  • 給定一個塊,self 是一個無限範圍。

相關: Range#max Range#minmax

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Range.min。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。