Wie initialisiert man einen leeren Slice in Go korrekt: var s []int vs s := make([]int, 0)?
Hallo zusammen! Ich habe vor kurzem angefangen, Go zu lernen, und bin auf ein Problem bei der Initialisierung von leeren Slices gestoßen. Es scheint zwei gängige Methoden zu geben:\n\n1. `var s []int` — Deklaration ohne Initialisierung (nil-Slice)\n2. `s := make([]int, 0)` — Initialisierung mit einem leeren Slice über make\n\nIch habe gelesen, dass beide Varianten verwendet werden können und sich in manchen Fällen gleich verhalten. Zum Beispiel, wenn ich `fmt.Println(s)` mache, wird in beiden Fällen `[]` ausgegeben. Aber ich habe ein seltsames Verhalten bei der JSON-Serialisierung bemerkt. Hier ist ein Beispiel:\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