go 构造切片slice

it2022-05-05  123

定义切片 make([]int, 5)  长度和容量均为5 make([]int, 0, 5) 长度为0 容量为0 切片 slice2[3:5] 对slice2进行切片返回 第3 4 两个元素 不包含index=5这个元素 ---------------------------------------------------------------------- package main import "fmt" func main() {     var z []int     if z == nil {         fmt.Println("is nil")     } else {         fmt.Println("not nil", z)     }     //按容量创建切片 并初始化数据为0     slice1 := make([]int, 5)     printSlice("slice1", slice1)     //最大容量为5初始化长度为0     slice2 := make([]int, 0, 5)     printSlice("slice2", slice2)     //容量为slice2 =5 长度为3     slice3 := slice2[:3]     printSlice("slice3", slice3)     //append 追加数据后 超出容量5 增长至5*2=10 ,append后长度为6     slice3 = append(slice3, 1)     slice3 = append(slice3, 3)     slice3 = append(slice3, 9)     slice3 = append(slice3, 1)     slice3 = append(slice3, 3,9,10)     printSlice("slice3", slice3)     slice4 := slice2[3:5]     printSlice("slice4", slice4)     //返回index=3-8 1 3 9 1 3 9     slice5 := slice3[3:9]     //slice3 进行切片,因容量是10 切片到index=9 返回3-9的元素 所以正确 slice3[3:11]会报错因为容量为10     slice6 := slice3[3:10]     printSlice("slice5", slice5)     printSlice("slice5", slice6) } func printSlice(a string, x []int) {     fmt.Println()     fmt.Printf("%s ,len = %d,cap = %d,val = %v", a, len(x), cap(x), x) } ---------------------------------------------------------------------- 切片做为参数传递

 

 

go语言开发交流qq群 857263711

保持进步希望每个人都能找到自己喜欢的方式生活、工作。

 

转载于:https://www.cnblogs.com/songhuan999999/p/11191836.html


最新回复(0)