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
mapestiver declarado, mas não inicializado, pode ser inicializado imediatamente antes da inserção. - Às vezes, o
mappode 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.