Sobes.tech
Junior — Middle

Kan de volgorde van het doorlopen van de elementen in de gegevensstructuur Map worden gegarandeerd?

sobes.tech AI

Antwoord van AI

In Go is de volgorde van het doorlopen van elementen in de datastructuur map niet gegarandeerd en willekeurig. Dit is expres gedaan om te voorkomen dat de code afhankelijk is van de doorlooptijd en om de veiligheid te verhogen.

Als een gegarandeerde volgorde nodig is, wordt meestal:

  • De sleutels geëxtraheerd in een slice
  • De slice gesorteerd
  • De map doorlopen op basis van de gesorteerde sleutels

Voorbeeld:

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

Op deze manier kan niet worden vertrouwd op de doorlooptijd van map in Go.