Rubyリファレンス: Home

min_by (Enumerable)

Edit   History

Ruby 1.8.7 Ruby 1.9

標準クラス・モジュール > Enumerable > min_by

enum.min_by {|item| block }

min_byメソッドは、ブロックの戻り値が最小値となる要素を返します。ブロック引数itemに要素を入れながらブロックを繰り返し実行し、ブロックの戻り値を集めます。集めた戻り値を<=>演算子で比較して、一番小さい戻り値に対応する要素を返します。

ブロックの戻り値に<=>で比較できないものが混じっていると例外ArgumentErrorが、<=>を実装していないものがあると例外NoMethodErrorが発生します。

次の例は、配列から一番短い文字列を取り出します。

animals = ["mouse", "cat", "hippopotamus", "giraffe"]
puts animals.min_by {|anim| anim.size }
cat

関連項目