Heim >Backend-Entwicklung >Golang >Wie kann ich in Go Arrays mit variabler Größe zuordnen?

Wie kann ich in Go Arrays mit variabler Größe zuordnen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-18 02:05:09573Durchsuche

How Can I Allocate Arrays with Variable Size in Go?

Zuweisen von Arrays mit variabler Größe in Go

Im Gegensatz zu Arrays mit konstanter Größe, die mit const deklariert werden, erlaubt Go nicht die direkte Zuweisung von Arrays mit laufzeitbestimmte Größen. Dies wird im folgenden illegalen Code deutlich:

n := 1
var a [n]int

Es gibt jedoch eine Lösung: Verwenden Sie Slices anstelle von Arrays. Slices sind Verweise auf zugrunde liegende Arrays und bieten dynamische Größenänderungsfunktionen. Die integrierte Funktion make() wird zum Erstellen von Slices und den ihnen zugrunde liegenden Arrays verwendet. Es werden drei Argumente benötigt:

  • Länge: Gibt die anfängliche Länge des Slice an
  • Kapazität: Gibt die maximale Kapazität des zugrunde liegenden Arrays an
  • Elementtyp: Definiert die Art der Elemente im Slice

Indem wir mit make() ein Slice erstellen, weisen wir indirekt einem Array eine Laufzeit zu Größe:

n := 12
s := make([]int, n, 2*n)

In diesem Fall wird ein Array der Größe 2*n zugewiesen, und s bezieht sich auf einen Slice, der die ersten n Elemente des Arrays enthält.

Es bleibt unklar, warum Go erlaubt keine direkte Zuweisung von Arrays variabler Größe, aber die Lösung der Verwendung von Slices bietet eine flexible und effiziente Alternative. Daher wird empfohlen, in den meisten Szenarien Slices zu verwenden, wenn mit dynamischen Datenstrukturen in Go gearbeitet wird.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go Arrays mit variabler Größe zuordnen?. 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