Menu
CoddyTech

Tri personnalisé avec des fonctions

Fait partie de la section Logique et flux du Journey Lua de Coddy. Leçon 8 sur 54.

Bien que table.sort() fonctionne très bien pour des listes simples de nombres ou de chaînes de caractères, les données du monde réel sont souvent plus complexes. Tu peux avoir une table d’enregistrements de joueurs, d’articles d’inventaire ou de scores de jeu, où chaque entrée est elle-même une table avec plusieurs champs.

Pour trier ces structures complexes, tu dois indiquer à table.sort() exactement comment comparer deux entrées. C’est là que les fonctions de comparaison personnalisées deviennent indispensables. Une fonction de comparaison prend deux éléments et renvoie true si le premier doit précéder le second dans l’ordre de tri.

Voici un exemple avec un tableau de scores des joueurs :

local players = {
    {name = "Alice", score = 150},
    {name = "Bob", score = 200},
    {name = "Charlie", score = 175}
}

table.sort(players, function(a, b)
    return a.score > b.score
end)

Après le tri, le tableau des joueurs sera ordonné par score décroissant, avec Bob en première position (200), Charlie en deuxième (175) et Alice en troisième (150). La fonction de comparaison accède au champ score de chaque tableau de joueur pour déterminer leur ordre.

Tu peux trier selon le champ de ton choix : les noms par ordre alphabétique, les niveaux par ordre numérique, ou même combiner plusieurs critères.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux

Entraînez-vous par vous-même : Compilateur Lua en ligne