【Ruby3.x】Range::max()メソッドの使い方
maxメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
maxメソッドは、レシーバであるRangeオブジェクトの範囲内から最大の要素を取得するメソッドです。引数を指定しない場合、このメソッドは範囲内の単一の最大値を返します。もし範囲が空である場合(例えば (5..1) のように開始値が終了値より大きい昇順の範囲の場合)、nilを返します。
整数 n を引数として指定すると、maxメソッドは範囲内の大きい方から n 個の要素を、降順にソートされた配列として返します。もし範囲内の要素数が n より少ない場合、範囲内のすべての要素を配列で返します。この振る舞いは、Rubyの Enumerable モジュールに定義されている max メソッドの挙動に準じています。
例えば、数値範囲 (1..10) に対して max メソッドを呼び出すと 10 が返されます。また、(1..5).max(3) のように引数 3 を指定すると、[5, 4, 3] という配列が結果として得られます。要素間の比較は、各要素に実装されている Comparable モジュールの機能を利用して行われます。これにより、数値だけでなく、比較可能な他のデータ型(文字列など)を含むRangeオブジェクトに対しても、最大値の取得が可能です。
構文(syntax)
1(1..10).max
引数(parameters)
n
- n: Integer: 取得する最大値の個数を指定する整数
戻り値(return)
Object
Rangeオブジェクトに含まれる値のうち、最も大きい値を返します。値が存在しない場合はnilを返します。