Sobes.tech
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 массиви жашы боюнча сорттолгон болот.