Junior — Middle
¿Qué acciones son permitidas con una variable de tipo Map que aún no ha sido inicializada?
sobes.tech AI
Respuesta de la IA
En Go, la variable de tipo map tiene un valor predeterminado de nil si no ha sido inicializada.
Con un map nil, se permiten las siguientes acciones:
- Leer un valor por clave: devolverá el valor cero del tipo y un indicador de que la clave no existe.
- Verificar la existencia de una clave usando
value, ok := map[key].
Las operaciones no permitidas son:
- La escritura (asignar un valor a una clave) causará un panic.
- Llamar a funciones que modifican el mapa (por ejemplo,
delete) en unmapniles seguro y no causa panic.
Ejemplo:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: asignación a entrada en mapa nil
delete(m, "key") // seguro, no hace nada
Para usar un mapa para escritura, debe ser inicializado, por ejemplo, con make:
m = make(map[string]int)
m["key"] = 10 // ahora funciona