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