Senior
Czy mapa gwarantuje kolejność odczytu danych?
sobes.tech AI
Odpowiedź od AI
W Go wbudowany typ map nie gwarantuje kolejności iteracji elementów podczas odczytu. Iteracja po mapie odbywa się w pseudo-losowej kolejności, która może się zmieniać przy każdym uruchomieniu programu. Jeśli potrzebne jest uporządkowane przejście, należy dodatkowo przechowywać klucze w tablicy i sortować je przed iteracją.
Przykład iteracji po mapie z sortowaniem kluczy:
m := map[string]int{"b": 2, "a": 1, "c": 3}
// Pobierz klucze
keys := make([]string, 0, len(m))
for k := range m {
keys = append(keys, k)
}
// Posortuj klucze
sort.Strings(keys)
// Iteruj po posortowanych kluczach
for _, k := range keys {
fmt.Println(k, m[k])
}