Rubyのmaxとmax_byの違い
使い方が異なる。
max
メソッドは比較演算子 <=>
の結果、つまり戻り値は -1
, 0
, 1
のいずれかを返す必要がある。 max_by
は比較したい値を返すだけでよい。
ちなみに max
も max_by
も Enumerable で定義されているメソッドなので Hash に対しても使えるが、上記のように配列展開が必要になって面倒くさいことになる。
使い方が異なる。
max
メソッドは比較演算子 <=>
の結果、つまり戻り値は -1
, 0
, 1
のいずれかを返す必要がある。 max_by
は比較したい値を返すだけでよい。
ちなみに max
も max_by
も Enumerable で定義されているメソッドなので Hash に対しても使えるが、上記のように配列展開が必要になって面倒くさいことになる。