Junior — Middle
Kaip galima rūšiuoti struktūrų masyvą Go kalboje?
sobes.tech AI
Atsakymas iš AI
Go kalboje, struktūrų masyvą galima rūšiuoti naudojant paketą sort. Tam reikia įgyvendinti sort.Interface sąsają, kuri reikalauja trijų metodų: Len(), Less(i, j int) bool ir Swap(i, j int).
Pavyzdys, kaip rūšiuoti struktūrų slice pagal vieną iš jų laukų:
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)
}
Rezultatas, kad people masyvas bus surūšiuotas pagal amžių.