Tri avec fonctions personnalisées
Contexte
Section intitulée « Contexte »Pour un tri personnalisé (par exemple par champ d’une structure), utilisez sort.Slice avec une fonction “moins”. Cela évite d’implémenter sort.Interface.
Trier une slice de structures par âge puis par nom.
Code exemple
Section intitulée « Code exemple »package main
import ( "fmt" "sort")
type Personne struct { Nom string Age int}
func main() { personnes := []Personne{ {"Alice", 30}, {"Bob", 25}, {"Charlie", 35}, }
// Tri par âge croissant sort.Slice(personnes, func(i, j int) bool { return personnes[i].Age < personnes[j].Age }) fmt.Println("Par âge :", personnes)
// Tri par nom décroissant sort.Slice(personnes, func(i, j int) bool { return personnes[i].Nom > personnes[j].Nom }) fmt.Println("Par nom décroissant :", personnes)}Par âge : [{Bob 25} {Alice 30} {Charlie 35}]Par nom décroissant : [{Charlie 35} {Bob 25} {Alice 30}]