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
Freigeben: 2024-12-18 02:05:09
Original
521 Leute haben es durchsucht

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

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

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!

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