Sobes.tech
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 false ao verificar a existência da chave.
  • Escrever (atribuir) em tal map causará 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.