11 从切片中删除元素Go语言中并没有删除切片元素的专用方法,我们可以使用切片本身的特性来删除元素。 代码如下:
func main() {
a := []int{30, 31, 32, 33, 34, 35, 36, 37}
a = append(a[:2], a[3:]...)
fmt.Println(a)
}
复制
1 2 3 4 5 6 7
12 切片删除元素再举例 arr := [...]int{1, 3, 5, 7, 9, 11}
s1:=arr[:]
fmt.Println(s1)
fmt.Printf("s1删除元素前的内存地址%p\n", s1)
s1=append(s1[:1],s1[3:]...)
fmt.Printf("s1删除元素后的内存地址%p\n", s1)
fmt.Println(s1)
fmt.Println(arr)
复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14
总结 - 切片永远是不存值的(切片是指向对应一个底层数组,底层数组都是占用一块连续的内存)
- 要从切片a中删除索引为index的元素,操作方法是a = append(a[:index], a[index+1:]...)
切片的内置函数汇总 - len 获取slice的长度
- cap 获取slice的最大容量
- append 向slice里面追加一个或者多个元素,然后返回一个和slice一样类型的slice
- copy 函数copy从源slice的src中复制元素到目标dst,并且返回复制的元素的个数
|