Slice的初始化
- slice是一个引用类型,总是指向一个底层array,slice的声明也可以像array一样,只是不需要长度。
var fslice []int
- 在声明slice的同时可以对其初始化
slice := []byte {'a', 'b', 'c', 'd'}
- 也可以用make函数进行初始化
StanOut := make([]string, 0)
Make函数和New函数
Slice的使用
- 新建了一个slice类型之后,如何向其中添加数据?官方文档上给出了几种做法:
- 利用别的slice对其赋值
var array = [10]byte{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'}
var aSlice, bSlice []byte
aSlice = array[:3]
aSlice = array[5:]
aSlice = array[:]
aSlice = array[3:7]
bSlice = aSlice[1:3]
bSlice = aSlice[:3]
bSlice = aSlice[0:5]
bSlice = aSlice[:]
len 获取slice的长度
cap 获取slice的最大容量
append 向slice里面追加一个或者多个元素,然后返回一个和slice一样类型的slice
copy 函数copy从源slice的src中复制元素到目标dst,并且返回复制的元素的个数
注意:不能在初始化slice之后直接对slice赋值,例如str[1]="abc"
,这样会报错,因为初始化之后的slice是空值,还不能对其利用下标取值。此时应该使用append函数对slice实现增加操作。在使用append函数时,注意其返回类型为type而不是指针*type,例str=append(str, "abc")
,此时sre[0]的值就是abc,以此类推。