小白教程

 找回密码
 立即注册

Go语言基础之切片

发布者: 小白教程



11 从切片中删除元素

Go语言中并没有删除切片元素的专用方法,我们可以使用切片本身的特性来删除元素。 代码如下:

func main() {
	// 从切片中删除元素
	a := []int{30, 31, 32, 33, 34, 35, 36, 37}
	// 要删除索引为2的元素
	a = append(a[:2], a[3:]...)
	fmt.Println(a) //[30 31 33 34 35 36 37]
}
复制
1
2
3
4
5
6
7

#12 切片删除元素再举例

    arr := [...]int{1, 3, 5, 7, 9, 11}
	//把数组arr赋值给切片s1
	s1:=arr[:]
	fmt.Println(s1)
	//打印S1的内存地址
	fmt.Printf("s1删除元素前的内存地址%p\n", s1)
	//删除s1的中的3 5 s1的结果为[1 7 9 11]
	s1=append(s1[:1],s1[3:]...)
	//打印S1的内存地址
	fmt.Printf("s1删除元素后的内存地址%p\n", s1)
	//s1删除元素的值为[1 7 9 11]
	fmt.Println(s1)
	//s1指向的数组arr的值为[1 7 9 11 9 11]
	fmt.Println(arr) //[1 7 9 11 9 11]
复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14

slice_03

总结

  • 切片永远是不存值的(切片是指向对应一个底层数组,底层数组都是占用一块连续的内存)
  • 要从切片a中删除索引为index的元素,操作方法是a = append(a[:index], a[index+1:]...)

切片的内置函数汇总

  • len 获取slice的长度
  • cap 获取slice的最大容量
  • append 向slice里面追加一个或者多个元素,然后返回一个和slice一样类型的slice
  • copy 函数copy从源slice的src中复制元素到目标dst,并且返回复制的元素的个数

下节更精彩

1234
上一篇:Go语言数组
Go语言教程

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 06:15 , Processed in 0.020559 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

返回顶部