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


Ruby Range.minmax用法及代碼示例


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

用法

minmax → [object, object]
minmax {|a, b| ... } → [object, object]

根據比較方法 <=> 或給定塊,返回包含 self 中的最小值和最大值的 2 元素數組。

沒有給出塊,返回最小值和最大值,使用<=>進行比較:

(1..4).minmax     # => [1, 4]
(1...4).minmax    # => [1, 3]
('a'..'d').minmax # => ["a", "d"]
(-4..-1).minmax   # => [-4, -1]

給定一個塊,該塊必須返回一個整數:

  • 如果 a 小於 b ,則為負數。

  • 如果 ab 相等,則為零。

  • 如果 a 大於 b ,則為正。

該塊被調用self.size次來比較元素;根據塊返回一個 2 元素 Array 包含來自 self 的最小值和最大值:

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

如果出現以下情況,則返回 [nil, nil]

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

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

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

如果 self 是無開始或無止境範圍,則引發異常。

相關: Range#min Range#max

相關用法


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