Sobes.tech
Junior — Middle

Cum se poate sorta un array de structuri în limbajul Go?

sobes.tech AI

Răspuns de la AI

În Go, pentru sortarea unui array de structuri, poți folosi pachetul sort. Pentru aceasta, trebuie să implementezi interfața sort.Interface, care necesită trei metode: Len(), Less(i, j int) bool și Swap(i, j int).

Exemplu de sortare a unui slice de structuri după unul dintre câmpurile sale:

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)
}

Rezultatul va fi că slice-ul people va fi sortat după vârstă.