Sobes.tech
Junior — Middle

Πώς μπορούμε να ταξινομήσουμε έναν πίνακα δομών στη γλώσσα Go;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go, για την ταξινόμηση ενός πίνακα δομών, μπορείτε να χρησιμοποιήσετε το πακέτο sort. Για αυτό, πρέπει να υλοποιήσετε το interface sort.Interface, που απαιτεί τρεις μεθόδους: Len(), Less(i, j int) bool και Swap(i, j int).

Παράδειγμα ταξινόμησης ενός slice δομών βάσει ενός από τα πεδία τους:

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)
}

Το αποτέλεσμα θα είναι ότι το slice people θα ταξινομηθεί κατά ηλικία.