Sobes.tech
Junior — Middle

É possível extrair um valor de um mapa que ainda não foi inicializado?

sobes.tech IA

Resposta da IA

Em Go, se um mapa (map) não foi inicializado (ou seja, é igual a nil), tentar extrair um valor por chave não causará um pânico, mas simplesmente retornará o valor zero para o tipo de valor e uma bandeira booleana false, indicando que a chave está ausente.

Exemplo:

var m map[string]int // m == nil

value, ok := m["key"]
fmt.Println(value, ok) // Vai imprimir: 0 false

No entanto, se tentar atribuir um valor a um mapa não inicializado, ocorrerá um pânico:

m["key"] = 10 // pânico: atribuição a entrada em mapa nil

Portanto, para usar o mapa de forma segura, você deve inicializá-lo, por exemplo, usando make:

m = make(map[string]int)
m["key"] = 10 // agora funciona corretamente