Como inicializar corretamente um slice vazio em Go: var s []int vs s := make([]int, 0)?
Olá a todos! Comecei a estudar Go recentemente e me deparei com o problema de inicialização de slices vazios. Aparentemente, existem duas formas populares:\n\n1. `var s []int` — declaração sem inicialização (nil-slice)\n2. `s := make([]int, 0)` — inicialização com slice vazio usando make\n\nLi que ambas as opções podem ser usadas e, em alguns casos, se comportam da mesma forma. Por exemplo, se eu fizer `fmt.Println(s)`, em ambos os casos é exibido `[]`. Mas notei um comportamento estranho na serialização para JSON. Aqui está um exemplo:\n\n```go\npackage main\n\nimport (\n "encoding/json"\n "fmt"\n)\n\ntype MyStruct struct {\n Items []string\n}\n\nfunc main() {\n s1 := MyStruct{}\n s2 := MyStruct{Items: []string{}}\n \n json1, _ := json.Marshal(s1)\n json2, _ := json.Marshal(s2)\n \n fmt.Println(str