Le tri des tranches est une fonction couramment utilisée dans Golang et peut être rapidement implémenté à l'aide de la fonction sort.Slice. Cette fonction permet de trier les tranches en passant une fonction de comparaison personnalisée. La fonction
sort.Slice est définie comme suit :
func Slice(slice interface{}, less func(i, j int) bool)
Parmi eux, le paramètre slice spécifie la tranche à trier, et le paramètre less est une fonction de comparaison utilisée pour définir les règles de comparaison des éléments de tranche.
Voici un exemple de code qui montre comment trier les tranches à l'aide de la fonction sort.Slice :
package main import ( "fmt" "sort" ) type Person struct { Name string Age int } type Persons []Person func (p Persons) Len() int { return len(p) } func (p Persons) Less(i, j int) bool { return p[i].Age < p[j].Age } func (p Persons) Swap(i, j int) { p[i], p[j] = p[j], p[i] } func main() { persons := Persons{ {"Alice", 25}, {"Bob", 30}, {"Charlie", 20}, {"David", 35}, } fmt.Println("Before sort:", persons) sort.Slice(persons, func(i, j int) bool { return persons[i].Age < persons[j].Age }) fmt.Println("After sort:", persons) }
Dans le code ci-dessus, nous définissons une structure Personne et un type de tranche Personnes. Le type Personnes implémente trois interfaces dans le package de tri : Len, Less et Swap, indiquant ainsi que les Personnes peuvent être triées.
Dans la fonction principale, nous définissons une instance de tranche de personnes et utilisons la fonction sort.Slice pour trier la tranche dans le code suivant. Dans ce cas, nous définissons un moyen de trier par ordre croissant selon le champ Person.Age en passant une fonction anonyme comme paramètre less.
Enfin, nous affichons les résultats triés et vous pouvez voir que le tri est terminé.
Résumé :
La fonction tri.Slice est un raccourci pour le tri des tranches dans Golang. Nous pouvons définir différents classements en passant différentes fonctions de comparaison. Lors du passage de la fonction de comparaison dans sort.Slice, nous pouvons utiliser une fonction anonyme ou une structure qui implémente l'interface de tri.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!