Enthüllung der optimalen Methode zum Initialisieren eines leeren Slice
Bei der Deklaration eines leeren Slice mit einer flexiblen Größe stellt sich die Frage: Welches ist das? bevorzugter Initialisierungsansatz – make([]int, 0) oder []int{}?
Beide Optionen führen zu semantisch identische Ergebnisse. Allerdings löst make([]int, 0) einen internen Aufruf von runtime.makeslice in Go 1.16 aus.
Alternativ können Sie sich für einen Nullwert entscheiden:
var myslice []int
Wie in angegeben Im Golang.org-Blog funktioniert ein Null-Slice wie ein Null-Längen-Slice, obwohl es auf nichts zeigt. Seine Länge beträgt Null und es ermöglicht das Anhängen mit Zuordnung.
Beachten Sie jedoch, dass ein Null-Slice in JSON als „null“ serialisiert wird, während ein leeres Slice als „[]“ gerendert wird.
Unabhängig von der gewählten Methode löst keine die Speicherzuweisung aus, wie von @ArmanOrdookhani klargestellt.
Das obige ist der detaillierte Inhalt von`make([]int, 0) vs. []int{} vs. nil: Was ist der beste Weg, ein leeres Slice in Go zu initialisieren?`. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!