切片的用法
定义切片
var arr1 []int
var arr2 = []int{1,2,3,656,788}
var arr3 = []int{1:1,2:2,3:3,4:656,6:788}
fmt.Println(arr1,arr2,arr3)
fmt.Println(arr1 == nil)
基于数组定义 切片
a := [5]int{1,2,35,8,9}
b := a[:]
fmt.Printf("%v -- %T",b,b)
c := a[1:4]
fmt.Printf("%v -- %T",c,c)
d :=a[2:]
fmt.Printf("%v -- %T",d,d)
e :=a[:3]
fmt.Printf("%v -- %T",e,e)
切片的长度和容量 len()长度--它所包含的个数 cap()容量--从它的第一个元素开始数,到其底层数组元素末尾的个数
f :=[]int{1,4,7,9}
fmt.Println(len(f),cap(f))
g :=f[1:3]
fmt.Println(len(g),cap(g))
make()方法创建切片 make([]T,size,cap)
var sliceA = make([]int,4,7)
fmt.Println(sliceA)
golang 无法使用下标的方式给切片扩容 append() 方法扩容
var sliceC []int
sliceC = append(sliceC,10,34,767,765)
sliceC = append(sliceC,31)
sliceC = append(sliceC,41)
fmt.Println(sliceC)
append() 可以实现合并切片
sliceM := []string{"A","B"}
sliceN :=[]string{"D","E"}
sliceM = append(sliceM,sliceN...)
fmt.Println(sliceM)
copy() 复制切片
sliceM := []string{"A","B","D","E"}
sliceF:= make([]string,4,5)
copy(sliceF,sliceM)
fmt.Println(sliceF)
sliceF[2] = "G"
fmt.Println(sliceM,sliceF)