Ruby_Array_38

この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。

class Array (Ruby 3.0.0 リファレンスマニュアル)

インスタンスメソッド

minmax -> [object, object]
minmax {|a, b| ... } -> [object, object]
  • 最小の要素と最大の要素を要素とするサイズ2の配列を返す
  • 前者のminmaxの方は、各要素がすべて<=>メソッドを実装していることを仮定している
irb(main):001:0> arr = %w[foo barbar hoge]
=> ["foo", "barbar", "hoge"]

irb(main):002:0> arr.minmax
=> ["barbar", "hoge"]

irb(main):003:0> arr.minmax {|a, b| a.size <=> b.size }
=> ["foo", "barbar"]
irb(main):001:0> [10].minmax
=> [10, 10]
irb(main):001:0> [].minmax
=> [nil, nil]

# memo
# これは覚えておきたい
irb(main):001:0> [10, true].minmax
Traceback (most recent call last):
        5: from /Users/mfham/.rbenv/versions/3.0.0/bin/irb:23:in `<main>'
        4: from /Users/mfham/.rbenv/versions/3.0.0/bin/irb:23:in `load'
        3: from /Users/mfham/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>'
        2: from (irb):1:in `<main>'
        1: from (irb):1:in `minmax'
ArgumentError (comparison of Integer with true failed)