Junior — Middle
Πώς μπορούμε να εξάγουμε τις τιμές ταξινομημένες κατά αναγνωριστικό από έναν πίνακα κατακερματισμού;
sobes.tech AI
Απάντηση από AI
Στο Go, ο πίνακας κατακερματισμού υλοποιείται με τον τύπο map, ο οποίος δεν εγγυάται τη σειρά των στοιχείων κατά την επανάληψη. Για να λάβετε τιμές ταξινομημένες κατά κλειδί (π.χ. αναγνωριστικό), πρέπει:
- Να εξάγετε όλα τα κλειδιά από το χάρτη σε μια λίστα.
- Να ταξινομήσετε τη λίστα των κλειδιών χρησιμοποιώντας τη συνάρτηση
sort. - Να διατρέξετε τα ταξινομημένα κλειδιά και να λάβετε τις αντίστοιχες τιμές από το χάρτη.
Παράδειγμα:
package main
import (
"fmt"
"sort"
)
func main() {
data := map[int]string{
3: "τρία",
1: "ένα",
2: "δύο",
}
// Εξαγωγή κλειδιών
keys := make([]int, 0, len(data))
for k := range data {
keys = append(keys, k)
}
// Ταξινόμηση κλειδιών
sort.Ints(keys)
// Διατρέξτε τα ταξινομημένα κλειδιά
for _, k := range keys {
fmt.Printf("%d: %s\n", k, data[k])
}
}
Έτσι, θα λάβετε τις τιμές ταξινομημένες κατά αναγνωριστικό (κλειδί).