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 θα ταξινομηθεί κατά ηλικία.