Avatar ·

Como inicializar map em Go de forma elegante e correta: make ou literal?

Olá a todos! Comecei a estudar Go recentemente e me deparei com uma dúvida em uma questão aparentemente simples. Como inicializar corretamente um map (dicionário)?\n\nVejo diferentes opções no código e não consigo entender qual delas é considerada "correta" ou "elegante" do ponto de vista da comunidade Go.\n\nPor exemplo, posso declarar um map assim:\n
var m map[string]int
\nMas se eu tentar escrever um valor logo após a declaração:\n
m["key"] = 10 // panic: assignment to entry in nil map
\nrecebo um panic! Acontece que o map precisa ser inicializado.\n\nConheço duas formas de fazer isso:\n\n1. Através da função make:\n
m := make(map[string]int)\nm["key"] = 10
\n\n2. Através de literal (vazio ou com dados):\n
m := map[string]int{}\nm["key"] = 10\n// ou com