Avatar ·

Korrekte Methode zur Initialisierung eines leeren Slices in Go: var vs make

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen und bin bei der Initialisierung von leeren Slices auf Verwirrung gestoßen. In der Dokumentation und in Beispielen sehe ich zwei Hauptansätze, verstehe aber nicht, welcher korrekt ist und in welchen Situationen.\n\nDer erste Weg ist über die Variablendeklaration:\n```go\nvar s []string\n```\n\nDer zweite Weg ist über die make-Funktion:\n```go\ns := make([]string, 0)\n```\n\nIch habe gelesen, dass beide ein leeres Slice erstellen, aber gibt es einen Unterschied zwischen ihnen? Wenn ich `var s []string` verwende, kann ich `s == nil` prüfen und erhalte `true`. Bei Verwendung von `make([]string, 0)` erhalte ich `false`. Bedeutet das, dass eine Methode besser ist als die andere?\n\nMich beschäftigt besonders die Situation, wenn ich ein Slice erstelle, das später mit Daten gefüllt wird, zum Beispiel beim Parsen von JSON oder beim Lesen von Zeilen aus einer Datei. Ich möchte unnötige Speicherallokationen vermeiden.