0005 Minmax

On pensait les connaitre, on a découvert des subtilités!

Ces fonctions sont définies dans le module Enumerable, celui-ci est inclus dans Array mais aussi Hash, Range, Enumerator, Struct, …

0005-minmax_1.png

C’est la méthode <=> qui est utilisé pour la comparaison. Les éléments doivent être comparables sinon une exception est levée. La comparaison peut être paramétrée avec un bloc. Dans ce cas il est souvent pratique d’utiliser min_by / max_by.

0005-minmax_2.png

Ces méthodes peuvent être utilisées avec un argument pour obtenir les n plus petits/grands éléments. Il existe même la méthode minmax!

0005-minmax_3.png

⚠️ Attention aux limitations du Range.

0005-minmax_4.png

Les liens vers la documentation Ruby de min, max, min_by, max_by, minmax et minmax_by.