Sobes.tech
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.