s1 := []int{1, 2, 3, 4, 5} //短操作符声明 len为4,cap为4
s2 := make([]int, 2, 4) //make语法声明 ,len为2,cap为4
s2 = []int{5, 6}
s3 := append(s2, 7) //append一个元素
fmt.Println(s3, s2) //[5 6 7] [5 6]
s2[0] = 0
fmt.Println(s3, s2) //[5 6 7] [0 6]
s4 := append(s2, s1...) //append 一个切片所有的元素
fmt.Println(s4) //[0 6 1 2 3 4 5]
//return
copy(s1, s2) // 复制,用s2的元素填充s1里去,改变原slice,覆盖对应的key
fmt.Println(s1) //[0 6 3 4 5]
s1[0], s1[1] = 1, 2
copy(s2, s1)
fmt.Println(s2) //[1 2] 目标slice len不够时,只填满len
s5 := s1[1:4]
s5[0] = 10
s6 := s5[0:4] //不会报错,因为cap为4,从底层取得最后一位
fmt.Println(s1, s5, s6, cap(s6)) //[1 10 3 4 5] [10 3 4] [10 3 4 5] 4
//删除第三个元素
s7 := append(s1[:2], s1[3:]...)
fmt.Println(s7) //[1 10 4 5]
go切片操作
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在go语言中,copy函数针对切片进行复制操作,在底层中,内存空间可以互相重叠,也可以相互独立。 首先讲一下数据空...
- 2020-10-29更新 "切片是指向数组的指针"这句话是不对的。切片就是切片,有自己的属性和方法,只是借用...
- 切片与动态数组 切片是围绕着动态数组的概念构建的,可以按需自动增长或缩小,还可以通过对切片再次切片来缩小一个切片的...