Werte in ein Slice an einem bestimmten Index einfügen
In Go erfordert das Einfügen von Werten in ein Slice an einem bestimmten Index eine sorgfältige Überlegung Slice-Länge, Kapazität und ob der Index innerhalb seiner Grenzen liegt.
Einfügen bei Verfügbarkeit Index
Wenn der Index, an dem Sie einfügen möchten, im Bereich der vorhandenen Elemente des Slice liegt, können Sie den folgenden Ansatz verwenden:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1[:index+1], slice1[index:]...) slice1[index] = value
Dieser Ansatz:
Einfügen an einem neuen Index
Wenn der Index Sie möchten insert at größer als die aktuelle Länge des Slice ist, müssen Sie die Kapazität des Slice erweitern, um die neue Länge aufzunehmen Element.
index := 7 if index > cap(slice1) { newCap := cap(slice1) * 2 // Double the capacity slice1 = append(make([]int, len(slice1), newCap), slice1...) } slice1 = append(slice1[:index+1], slice1[index:]...) slice1[index] = value
Dieser Ansatz:
Einfügen am Ende des Slice
Zum Einfügen am Ende des Slice können Sie einfach den neuen Wert anhängen:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1, value)
Verwenden Sie das Paket „slices“ (für Go 1.21)
Für Go Version 1.21 und höher können Sie die Funktion „slices.Insert()“ aus dem verwenden github.com/golang/exp/slices Paket:
import "github.com/golang/exp/slices" slice1 := []int{1, 3, 4, 5} slices.Insert(slice1, index, value)
Beispiel:
array1 := []int{1, 3, 4, 5} array2 := []int{2, 4, 6, 8} index := 1 // Index to insert at value := array2[2] // Value to insert // Insert value into array1 at index slice1 := array1[:index+1] slice2 := array1[index:] slice1 = append(slice1, value) slice1 = append(slice1, slice2...) array1 = slice1 // Result: [1, 6, 3, 4, 5]
Das obige ist der detaillierte Inhalt vonWie fügt man Werte an einem bestimmten Index in ein Go-Slice ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!