Sobes.tech
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 um map nil é 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