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