Junior — Middle
Que ações são permitidas com uma variável do tipo Map que ainda não foi inicializada?
sobes.tech IA
Resposta da IA
Em Go, uma variável do tipo map por padrão tem o valor nil se não tiver sido inicializada.
Com um map nil, as seguintes ações são permitidas:
- Ler um valor por chave — retornará o valor zero do tipo e um indicador de ausência de chave.
- Verificar a existência de uma chave usando
value, ok := map[key].
Operações não permitidas:
- Escrita (atribuição de valor a uma chave) causará um panic.
- Chamar funções que modificam o mapa (por exemplo,
delete) em ummapnilé seguro e não causa panic.
Exemplo:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: atribuição a entrada em mapa nil
delete(m, "key") // seguro, não faz nada
Para usar um mapa para escrita, ele precisa ser inicializado, por exemplo, com make:
m = make(map[string]int)
m["key"] = 10 // agora funciona