slice
slice 是基本数组存在的,但是它提供了更加强大的功能,so使用起来也更加的方便
创建slice
类似于数组的创建方式,但是不用指明元素的个数:
s1 := []string{"fff","ddsd","ddd"}
基于make创建:
fun make([]T,len,cap) []T //T是元素的类型,len 元素的个数,cap slice 每次分配的空间大小(cap 是可选的)
s2 := make([]int,3,10)//3个元素,空间是10。当元素个数超出10之后,就再分配10
- 基于数组创建:
array := [...]int{2,3,34,42,32,232,13}
s3 := array[2:4] //结果:34,42. 取 array中下标为2和3的元素,不包括4
//也可以这样
s4 := array[:4] //等同于:array[0:4]
s5 := array[4:] //从下标为4到最后
s6 := array[:]
slice 的 copy 函数和 append函数
s1 := []int{7,8,9,10}
s2 := []int{1,2,3,4,5,6}
copy(s1,s2) //将s2 copy 给s1
fmt.Println(s1) //[1,2,3,4]
copy(s2,s1)
fmt.Println(s2) //[7,8,9,10,5,6]
append(s1,1,2,3) //在s1后面增加 1,2,3这三个元素
fmt.Println(s1) //s1 == [7,8,9,10,1,2,3]