将值插入到给定索引处的切片
在 Go 中,将值插入到特定索引处的切片需要仔细考虑切片的长度、容量以及索引是否在其范围内
在可用索引处插入
如果要插入的索引在切片现有元素的范围内,可以使用以下方法:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1[:index+1], slice1[index:]...) slice1[index] = value
此方法:
在新建索引
如果要插入的索引大于切片的当前长度,则需要扩展切片容纳新元素的容量。
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
此方法:
在切片末尾插入
要在切片末尾插入,只需附加新值即可:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1, value)
使用“slices”包(对于 Go 1.21 )
对于 Go 1.21 及以上版本,您可以使用 github.com/golang/exp/slices 包中的 slices.Insert() 函数:
import "github.com/golang/exp/slices" slice1 := []int{1, 3, 4, 5} slices.Insert(slice1, index, value)
示例:
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]
以上是如何将值插入到给定索引处的 Go 切片中?的详细内容。更多信息请关注PHP中文网其他相关文章!