首页 >后端开发 >Golang >如何将值插入到特定索引处的 Go 切片中?

如何将值插入到特定索引处的 Go 切片中?

Susan Sarandon
Susan Sarandon原创
2024-11-19 01:36:02587浏览

How to Insert a Value into a Go Slice at a Specific Index?

将值插入到给定索引处的切片中

在 Go 中,可以将值插入到特定索引处的切片中使用各种方法:

使用切片。插入函数(Go 1.21 及更高版本):

result = slices.Insert(slice, index, value)

注意:索引应介于 0 和 len(slice) 之间.

使用追加和赋值运算符:

a = append(a[:index+1], a[index:]...)
a[index] = value

使用插入函数:

func insert(a []int, index int, value int) []int {
    if index == len(a) { // Nil or empty slice, or after last element
        return append(a, value)
    }
    a = append(a[:index+1], a[index:]...) // Step 1+2
    a[index] = value                      // Step 3
    return a
}

基准:

提供的基准结果表明 slices.Insert 函数对于小切片大小最有效。对于较大的切片,追加和插入函数性能更好。

处理索引超出范围:

  • 切片。如果索引超出范围,则插入恐慌.
  • 如果索引大于 len(slice),追加和插入函数会自动调整切片大小。

泛型(Go 1.18 及更高版本):

func insert[T any](a []T, index int, value T) []T {
    // Similar to the non-generic function
}

以上是如何将值插入到特定索引处的 Go 切片中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn