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 სლაისი იქნება ასაკის მიხედვით სორტირებული.