Sobes.tech
Junior — Middle

Czy struktura danych Map gwarantuje zachowanie kolejności wstawiania elementów?

sobes.tech AI

Odpowiedź od AI

W języku Go struktura danych map nie gwarantuje zachowania kolejności wstawiania elementów. Iteracja po map odbywa się w losowej kolejności, która może się zmieniać przy każdym przebiegu.

Jeśli konieczne jest zachowanie kolejności wstawiania, należy użyć dodatkowej struktury danych, np. slice'a do przechowywania kluczy w żądanej kolejności, lub skorzystać z bibliotek zewnętrznych implementujących uporządkowane słowniki.

Przykład iteracji po map z zachowaniem kolejności kluczy:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    keys := []string{"a", "b", "c"} // kolejność wstawiania

    for _, k := range keys {
        fmt.Println(k, m[k])
    }
}