//切片的定义方式var a []int//空的切片长度0 使用a[0]会发生错误
a =make([]int,3)//将定义长度为3的切片并赋值给avar a []int=make([]int,3)//定义长度为3,初始值为0的切片
a :=[]int{1,2,3,4}//初始化为长度为4的切片值为1,2,3,4
a :=make([]int,3)//定义长度为3的切片 初始值为0
切片的增加和截取和python类似
切片增加一个值分配的空间将会翻倍(加入将长度为3的切片增加1,切片分配的空间就会变为6在)
var a []int=make([]int,3,5)
a =append(a,1)// len(a) = 4 cap(a) = 5 a = 0,0,0,1
a =append(a,2)// len(a) = 5 cap(a) = 5 a = 0,0,0,1,2
a =append(a,3)// len(a) = 6 cap(a) = 10 a = 0,0,0,1,2,3
b := a[0:2]
b[0]=100// a[0]的值同时也变为100
切片赋值是一种指针引用(和python不同,python切片后是一个新的内存地址)
a =[1,2,3]
b = a[:2]id(a[0])#140728637379616id(b[0])#140728637382784