RX0245

Domaine: Exécution

Message d'erreur

sort ordonne une liste, et %s est une map (%s)

Dans le message, %s marque une valeur que le moteur remplit au moment où il lève l'erreur.

L'histoire

Vous avez demandé à sort de trier une map, et le moteur a refusé. Voyons pourquoi. Sort ordonne une liste : des valeurs dans leur ordre naturel, ou des maps selon une étiquette que vous indiquez avec by. Une map, elle, est faite de membres repérés par une clé. Elle n'a pas d'ordre à remettre. Et surtout, trier une map est ambigu : voulez-vous trier les clés, ou trier les valeurs ? Le moteur ne devine pas, c'est à vous de choisir. Il refuse donc, en citant le détenteur tel que vous l'avez écrit, et il vous donne le remède. Si vous voulez trier les clés, écrivez sort de keys de m. Si vous voulez les valeurs, sort de values de m. Et si vous avez une liste de maps, triez-la avec by suivi de l'étiquette. Exemple : une map d'âges par prénom. Vous voulez les prénoms par ordre alphabétique : sort de keys de la map. Autrefois, le message se contentait du code moins un. Désormais il explique et il propose la solution. Votre intention reste à vous, le moteur s'en tient à ce qui est écrit.

Texte issu du catalogue d'erreurs du moteur Rush.