Rubyのmax、min、max_by、min_by、minmaxメソッドの使い方
これらのメソッドは、配列や範囲内の要素から最大値、最小値、あるいは両方を取得するために使用されます。それぞれの使い方と例を説明します。
maxメソッド
maxメソッドは、配列や範囲内の最大値を返します。
1 2 3 |
numbers = [2, 4, 6, 8, 10] max_value = numbers.max puts max_value |
出力結果
10
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
minメソッド
minメソッドは、配列や範囲内の最小値を返します。
1 2 3 |
numbers = [2, 4, 6, 8, 10] min_value = numbers.min puts min_value |
出力結果
2
max_byメソッド
max_byメソッドは、ブロックを渡すことで、要素を評価し、最大値を持つ要素を返します。
1 2 3 |
words = ["apple", "banana", "cherry"] longest_word = words.max_by { |word| word.length } puts longest_word |
出力結果
banana
min_byメソッド
min_byメソッドは、ブロックを渡すことで、要素を評価し、最小値を持つ要素を返します。
1 2 3 |
words = ["apple", "banana", "cherry"] shortest_word = words.min_by { |word| word.length } puts shortest_word |
出力結果
apple
minmaxメソッド
minmaxメソッドは、配列や範囲内の最小値と最大値を一度に取得します。結果は、2要素の配列として返されます。
1 2 3 |
numbers = [2, 4, 6, 8, 10] minmax_values = numbers.minmax puts minmax_values.inspect |
出力結果
[2, 10]
メソッドを使用しない例との比較
これらのメソッドを使わない場合、最大値や最小値を取得するには、独自のコードを書く必要があります。以下に、maxメソッドとminメソッドを使わないで最大値と最小値を取得する例を示します。
1 2 3 4 5 6 7 8 9 10 11 |
numbers = [2, 4, 6, 8, 10] max_value = numbers[0] min_value = numbers[0] numbers.each do |number| max_value = number if number > max_value min_value = number if number < min_value end puts "Max: #{max_value}" puts "Min: #{min_value}" |
出力結果
Max: 10
Min: 2
このように、maxメソッドやminメソッドを使用することで、コードがシンプルで読みやすくなります。
まとめ
この記事では、Rubyのmaxメソッド、minメソッド、max_byメソッド、min_byメソッド、minmaxメソッド、およびその他のmax系のメソッドについて解説しました。これらのメソッドは、配列や範囲内の要素から最大値や最小値を効率的に取得するのに便利です。
また、メソッドを使用することで、コードがシンプルで読みやすくなることが分かりました。
最後まで見て頂き、ありがとうございました!