Sobes.tech
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])
}

Έτσι, η σειρά επανάληψης θα είναι σταθερή και προβλέψιμη.