Sobes.tech
Junior — Middle

Em que casos é permitido realizar uma operação de inserção em um Map que ainda não foi inicializado?

sobes.tech IA

Resposta da IA

No Go, não é possível realizar a operação de inserção em um map se ele não tiver sido inicializado (ou seja, se for nil), pois isso causará um pânico em tempo de execução.

A inicialização do map é feita usando a função make:

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

Se o map for nil, uma tentativa de gravação causará um pânico:

var m map[string]int
m["key"] = 42 // pânico: atribuição a uma entrada em um map nulo

Exceção:

  • Se o map estiver declarado, mas não inicializado, pode ser inicializado imediatamente antes da inserção.
  • Às vezes, o map pode ser inicializado em um construtor ou função e passado adiante.

Portanto, a inserção em um map não inicializado só é permitida após sua inicialização explícita via make ou atribuição de um map já existente e inicializado. Sem isso, a operação causará um erro em tempo de execução.