Sobes.tech
Junior — Middle

¿Se puede obtener un valor de un mapa que aún no ha sido inicializado?

sobes.tech AI

Respuesta de la IA

En Go, si un mapa (map) no ha sido inicializado (es decir, es igual a nil), intentar obtener un valor por clave no causará un pánico, sino que simplemente devolverá el valor cero para el tipo de valor y una bandera booleana false, indicando que la clave no existe.

Ejemplo:

var m map[string]int // m == nil

value, ok := m["key"]
fmt.Println(value, ok) // Imprimirá: 0 false

Sin embargo, si intentas asignar un valor a un mapa no inicializado, ocurrirá un pánico:

m["key"] = 10 // pánico: asignación a entrada en mapa nil

Por lo tanto, para usar un mapa de forma segura, debes inicializarlo, por ejemplo, usando make:

m = make(map[string]int)
m["key"] = 10 // ahora funciona correctamente