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ă.