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