Junior — Middle
Hoe kun je een array van structuren sorteren in de programmeertaal Go?
sobes.tech AI
Antwoord van AI
In Go kun je een array van structs sorteren met behulp van de sort-package. Hiervoor moet je de sort.Interface-interface implementeren, die drie methoden vereist: Len(), Less(i, j int) bool en Swap(i, j int).
Voorbeeld van het sorteren van een slice van structs op basis van een van hun velden:
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)
}
Het resultaat is dat de slice people gesorteerd wordt op leeftijd.