Junior — Middle
Em que casos é seguro ler dados de um Map que ainda não foi explicitamente inicializado?
sobes.tech IA
Resposta da IA
Em Go, ler de um map que não foi explicitamente inicializado (ou seja, é nil) é seguro, mas com limitações.
Se o map for nil, então:
- Ler um valor por chave retorna o valor zero do tipo do elemento e
falseao verificar a existência da chave. - Escrever (atribuir) em tal
mapcausará um panic.
Exemplo:
var m map[string]int // m == nil
value, ok := m["key"] // seguro, value == 0, ok == false
// m["key"] = 10 // panic: atribuição a entrada em map nil
Portanto, é seguro ler de um map se ele não foi inicializado, mas não se pode escrever nele. Para escrever, é necessário inicializar o map usando make.