Heim > Backend-Entwicklung > Golang > `make([]int, 0) vs. []int{} vs. nil: Was ist der beste Weg, ein leeres Slice in Go zu initialisieren?`

`make([]int, 0) vs. []int{} vs. nil: Was ist der beste Weg, ein leeres Slice in Go zu initialisieren?`

Mary-Kate Olsen
Freigeben: 2024-12-19 14:12:10
Original
408 Leute haben es durchsucht

`make([]int, 0) vs. []int{} vs. nil: What's the Best Way to Initialize an Empty Slice in Go?`

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage