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.