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