Heim >Backend-Entwicklung >Golang >Go Slices: `var s []int` oder `s := make([]int, 0)` – Welche Deklaration ist am besten?

Go Slices: `var s []int` oder `s := make([]int, 0)` – Welche Deklaration ist am besten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-17 07:10:27135Durchsuche

Go Slices: `var s []int` or `s := make([]int, 0)` – Which Declaration is Best?

Deklarieren vs. Erstellen von Slices in Go: var s []int or s := make([]int, 0)?

In Go sind Slices a leistungsstarke Datenstruktur, die einen flexiblen Array-ähnlichen Typ darstellt. Wenn Sie mit Slices arbeiten, sind Sie möglicherweise auf zwei verschiedene Möglichkeiten gestoßen, diese zu deklarieren:

  • Einfache Deklaration: var s []int
  • make () Deklaration: s := make([]int, 0)

Das Verständnis des Unterschieds zwischen diesen beiden Ansätzen ist entscheidend für das Schreiben von effizientem und idiomatischem Go-Code.

var s []int

Die einfache Deklaration var s []int reserviert keinen Speicher. Es wird ein Null-Slice erstellt, was bedeutet, dass s auf eine leere Speicheradresse zeigt. Diese Deklaration wird normalerweise verwendet, wenn Sie die genaue Größe des benötigten Slice nicht im Voraus kennen oder wenn Sie später Speicher dynamisch zuweisen müssen.

s := make([]int, 0 )

Im Gegensatz dazu reserviert s := make([]int, 0) Speicher für ein Slice mit 0 Elementen. Es weist den Compiler ausdrücklich an, ein Slice mit einer bestimmten Kapazität zu erstellen, d. h. der maximalen Anzahl von Elementen, die es aufnehmen kann, bevor es wachsen muss. In diesem Fall hat es eine Kapazität von 0. Dieser Ansatz wird bevorzugt, wenn Sie die genaue Größe des benötigten Slice kennen oder wenn Sie unnötige Speicherneuzuweisungen vermeiden möchten.

Welches ist besser?

Im Allgemeinen ist die Verwendung von var s []int idiomatischer, wenn Sie die genaue Größe des benötigten Slice nicht kennen oder wenn Sie Speicher zuweisen möchten dynamisch. Wenn Sie die genaue Größe im Voraus kennen oder eine Neuzuweisung von Speicher vermeiden müssen, ist s := make([]int, 0) die bessere Wahl.

Das obige ist der detaillierte Inhalt vonGo Slices: `var s []int` oder `s := make([]int, 0)` – Welche Deklaration ist am besten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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