Wie sortiert man am einfachsten ein Struct-Array nach einem beliebigen Feld in Go?
Hallo zusammen! Ich habe gerade angefangen, Go zu lernen und bin auf ein Problem mit der Sortierung gestoßen. Ich habe ein Array von User-Structs:
type User struct {
Name string
Age int
Score float64
}
users := []User{
{"Anna", 25, 88.5},
{"Boris", 30, 92.1},
{"Viktor", 22, 85.0},
}
Ich muss dieses Array nach verschiedenen Feldern sortieren, je nach Benutzerauswahl: mal nach Name (alphabetisch), mal nach Alter, mal nach Punktzahl. Ich weiß, dass es in Go das Paket sort gibt, aber für jedes Feld muss ich eine separate Funktion mit Less(i, j int) bool schreiben. Das ist sehr umständlich, besonders wenn es viele Felder gibt.
Zum Beispiel die Sortierung nach Alter:
sort.Slice(users, func(i, j int) bool {
return users[i].Age < users[j].Age
})