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])
}