golang 切片是一种特殊的数据结构,在golang 中使用slice切片比较方便。因为切片是自动调整长度的,不需要定义长度,可以简单理解它为动态数组。
//声明一个切片
var slicename []type;
// 声明一个切片并赋值
var slicename = []type{value1,value2}
//简写
slicename := []type{value1,value2}
// make声明,给slice切片分配内存并初始化。
slicename := make([]type ,len)
三种方法声明切片
// 只声明,不赋值
var slicename []string;
// 声明并赋值
var slicename = []string{"a","b"}
//make创建
slicename := make([]string, 3)
slicename[0] = "a"
slicename[1] = "b"
slicename[2] = "c"
fmt.Println(slicename) //[a b c]
slice append 新增切片元素,返回一个新的切片。
slice1 := []int{1, 2, 3}
slice2 := append(slice1, 222)
fmt.Println(slice1) // [1,2,3]
fmt.Println(slice2) // [1,2,3,222]
slice3 := []int{1, 2, 3, 4, 5}
slice4 := slice3[1:3] // [2,3]
fmt.Println(slice4)
截取slice3切片索引1开始到3结束,不包含索引3。
slice5 := []int{1, 2}
slice6 := []int{11, 22, 33}
slice8 := copy(slice6, slice5)
fmt.Println(slice5) //[1 2]
fmt.Println(slice6) //[1 2 33]
fmt.Println(slice8) //3