golang slice切片基础

文章发布于 2023-08-21

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]

append方法

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