Sobes.tech
Senior

Map veri okuma sırasını garanti eder mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde yerleşik map tipi, okuma sırasında öğelerin sırasını garanti etmez. Map üzerinde yineleme, her seferinde programın çalıştırılmasına bağlı olarak değişebilen öngörülemeyen bir sırada gerçekleşir. Sıralı bir yineleme gerekiyorsa, anahtarlar ek olarak bir dilim içinde saklanmalı ve yinelemeden önce sıralanmalıdır.

Anahtarların sıralanmasıyla map üzerinde yineleme örneği:

m := map[string]int{"b": 2, "a": 1, "c": 3}

// Anahtarları al
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Anahtarları sırala
sort.Strings(keys)

// Sıralı anahtarlar üzerinde yineleme
for _, k := range keys {
    fmt.Println(k, m[k])
}