Junior — Middle
Αν περπατήσετε αρκετές φορές σε ένα Map, θα διατηρηθεί η σειρά των κλειδιών;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, ο τύπος map δεν εγγυάται τη διατήρηση της σειράς των κλειδιών κατά την επανάληψη. Σε κάθε πέρασμα από ένα map, η σειρά με την οποία επισκέπτεται τα κλειδιά μπορεί να διαφέρει, καθώς η εσωτερική αναπαράσταση του πίνακα κατακερματισμού δεν είναι ταξινομημένη.
Αν θέλετε να διατηρήσετε μια σειρά, π.χ. τη σειρά εισαγωγής, θα πρέπει να χρησιμοποιήσετε μια επιπλέον δομή δεδομένων, όπως ένα slice κλειδιών, και να επαναλάβετε πάνω σε αυτό.
Παράδειγμα:
m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "b", "c"}
for _, k := range keys {
fmt.Println(k, m[k])
}
Έτσι, η σειρά επανάληψης θα είναι σταθερή και προβλέψιμη.