Junior — Middle
Go тилинде структуралар массивин кантип сорттош керек?
sobes.tech AI
AIден жооп
Go тилинде структуралар массивин сорттоо үчүн sort пакетін колдонсо болот. Бул үчүн, sort.Interface интерфейсин ишке ашырышыңыз керек, ал үч методду талап кылат: Len(), Less(i, j int) bool жана Swap(i, j int).
Мисал катары, структуралардын слайсин биринин талаасы боюнча сорттоо:
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)
}
Натыйжада, people массиви жашы боюнча сорттолгон болот.