Sobes.tech
Junior — Middle

¿En qué casos se permite realizar una operación de inserción en un Map que aún no ha sido inicializado?

sobes.tech AI

Respuesta de la IA

En Go, no se puede realizar la operación de inserción en un map si no ha sido inicializado (es decir, si es nil), ya que esto provocará un pánico en tiempo de ejecución.

La inicialización del map se realiza con la función make:

m := make(map[string]int)
ms["key"] = 42 // correcto

Si el map es nil, un intento de escritura provocará un pánico:

var m map[string]int
m["key"] = 42 // pánico: asignación a entrada en un map nulo

Excepción:

  • Si el map está declarado pero no inicializado, se puede inicializar justo antes de insertar.
  • A veces, el map puede ser inicializado en un constructor o función y pasado a otros.

Por lo tanto, la inserción en un map no inicializado solo es válida después de su inicialización explícita mediante make o asignación de un map ya existente e inicializado. Sin esto, la operación provocará un error en tiempo de ejecución.