Heim >Backend-Entwicklung >Golang >Wie kann ich Arrays mit nicht konstanter Größe in Go zuweisen?

Wie kann ich Arrays mit nicht konstanter Größe in Go zuweisen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-13 05:34:08476Durchsuche

How Can I Allocate Non-Constant Size Arrays in Go?

Zuweisen von Arrays mit nicht konstanter Größe in Go: Slices zur Rettung

Im Gegensatz zu anderen Sprachen erlaubt Go keine dynamische Zuweisung von Arrays Größen direkt. Wenn Sie versuchen, ein Array mit einer variablen Größe zu erstellen, z. B. var a [n]int, wird ein Fehler bei der Kompilierung auftreten.

Diese Einschränkung stellt keine Einschränkung dar, sondern eher einen Vorstoß zur Verwendung von Slices , eine flexiblere und leistungsfähigere Datenstruktur in Go. Slices ähneln Arrays, haben jedoch eine dynamische Größe, die zur Laufzeit angepasst werden kann.

Um ein Array mithilfe von Slices zuzuweisen, können Sie die Make-Funktion verwenden, die sowohl ein Slice als auch das zugrunde liegende Array erstellt:

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

In diesem Beispiel ist s ein Slice von Ganzzahlen, und ein neues Array der Größe 2*n wird zum Speichern der Slice-Elemente zugewiesen. Das Slice s bezieht sich zunächst auf die erste Hälfte des Arrays.

Diese Methode bietet sowohl die Flexibilität, die Array-Größe dynamisch anzupassen, als auch die Vorteile der Arbeit mit Arrays, wie z. B. die garantierte zusammenhängende Speicherzuweisung. Daher ist es in Go üblich, sich für die dynamische Datenverwaltung auf Slices statt auf Arrays zu verlassen.

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