定义切片
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)
}
----------------------------------------------------------------------
切片做为参数传递
![](https://img2018.cnblogs.com/blog/1738541/201907/1738541-20190716144619462-1664146081.png)
go语言开发交流qq群 857263711
保持进步
希望每个人都能找到自己喜欢的方式生活、工作。