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 an einem verfügbaren Index
Wenn der Index, an dem Sie einfügen möchten, innerhalb des Bereichs von liegt Für die vorhandenen Elemente des Slice 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 Wenn der Index, an dem Sie einfügen möchten, größer als die aktuelle Länge des Slice ist, müssen Sie die Kapazität des Slice erweitern, um das neue Element aufzunehmen.
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
Um am Ende des Slice einzufügen, können Sie einfach den neuen Wert anhängen:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1, value)
Verwenden Sie die Funktion „Slices“ Paket (für Go 1.21)
Für Go Version 1.21 und höher können Sie die Funktion „slices.Insert()“ aus dem Paket github.com/golang/exp/slices verwenden:
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!