Junior — Middle
Comment peut-on trier un tableau de structures dans le langage Go?
sobes.tech IA
Réponse de l'IA
En Go, pour trier un tableau de structures, vous pouvez utiliser le package sort. Pour cela, il faut implémenter l'interface sort.Interface, qui nécessite trois méthodes : Len(), Less(i, j int) bool et Swap(i, j int).
Exemple de tri d'un slice de structures par l'un de ses champs :
package main
import (
"fmt"
"sort"
)
type Person struct {
Name string
Age int
}
type ByAge []Person
func (a ByAge) Len() int { return len(a) }
func (a ByAge) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a ByAge) Less(i, j int) bool { return a[i].Age < a[j].Age }
func main() {
people := []Person{
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35},
}
sort.Sort(ByAge(people))
fmt.Println(people)
}
Le résultat sera que le slice people sera trié par âge.