Junior — Middle
Como é que se acede aos valores de um dicionário que ainda não foi criado previamente?
sobes.tech IA
Resposta da IA
Em Go, se um mapa (map) ainda não foi criado (ou seja, é igual a nil), tentar aceder aos seus elementos por chave não causará pânico, apenas retornará o valor zero do tipo dos elementos.
Por exemplo:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Vai mostrar 0, não causará erro
No entanto, tentar atribuir um valor a um mapa nil causará um pânico:
m["key"] = 10 // pânico: atribuição a uma entrada em mapa nil
Por isso, antes de escrever num mapa, deve-se garantir que ele está inicializado, por exemplo:
m = make(map[string]int)
m["key"] = 10
Assim, para leitura, pode-se aceder a um mapa nil sem erros, mas para escrita, é necessário criar previamente o mapa.