Sobes.tech
Junior — Middle

Πώς πραγματοποιείται η ακολουθία περιήγησης των στοιχείων στη δομή δεδομένων Map;

sobes.tech AI

Απάντηση από AI

Στη Go, η δομή δεδομένων map δεν εγγυάται μια συγκεκριμένη σειρά διαδρομής των στοιχείων. Κατά την επανάληψη με βρόχο for range, η σειρά θα είναι τυχαία και μπορεί να αλλάξει σε κάθε εκτέλεση του προγράμματος.

Παράδειγμα διαδρομής στοιχείων σε ένα map:

m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
    fmt.Println(key, value)
}

Εάν χρειάζεται μια ταξινομημένη διαδρομή, συνήθως εξάγονται τα κλειδιά σε μια λίστα, ταξινομούνται και στη συνέχεια διατρέχουν με τη σειρά:

keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, m[k])
}

Έτσι, η σειρά διαδρομής σε ένα map δεν ορίζεται από προεπιλογή και είναι τυχαία.