Sobes.tech
Senior

¿Garantiza map el orden de lectura de datos?

sobes.tech AI

Respuesta de la IA

En Go, el tipo incorporado map no garantiza el orden de recorrido de los elementos al leer. La iteración sobre un map ocurre en un orden pseudoaleatorio, que puede cambiar en cada ejecución del programa. Si se necesita un recorrido ordenado, es necesario almacenar las claves adicionalmente en un slice y ordenarlas antes de iterar.

Ejemplo de recorrido de un map con ordenamiento de claves:

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

// Obtener las claves
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Ordenar las claves
sort.Strings(keys)

// Iterar sobre las claves ordenadas
for _, k := range keys {
    fmt.Println(k, m[k])
}