Go语言的切片插入和删除

本文最后更新于:3 年前

golang 的切片插入和删除操作

执行测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package main

import "fmt"

func main() {
s := []int{1, 2, 4, 7}

// 结果应该是 5, 1, 2, 4, 7
s = Add(s, 0, 5)
fmt.Println(s)
// 结果应该是5, 9, 1, 2, 4, 7
s = Add(s, 1, 9)
fmt.Println(s)
// 结果应该是5, 9, 1, 2, 4, 7, 13
s = Add(s, 6, 13)
fmt.Println(s)

// 结果应该是5, 9, 2, 4, 7, 13
s = Delete(s, 2)
fmt.Println(s)
// 结果应该是9, 2, 4, 7, 13
s = Delete(s, 0)
fmt.Println(s)
// 结果应该是9, 2, 4, 7
s = Delete(s, 4)
fmt.Println(s)

}

新增任意位置

1
2
3
func Add(s []int, index int, value int) []int {
return append(s[:index], append([]int{value}, s[index:]...)...)
}

删除任意位置

1
2
3
func Delete(s []int, index int) []int {
return append(s[:index], s[index+1:]...)
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!