package main import "fmt" //切片 //切片下来的b从新赋值,那么a随之改变 func xxx() { //定义切片以直接由数组切出来 //var a [8]int = [8]int{1,2,3,4,5,67} //var b[]int = a[2:5] //定义切片2,c该c是是一个nil,就是空只有 //var c []int //b[2]=200 //fmt.Println(b) //fmt.Println(a) //fmt.Println(c) //定义并初始化,第一个数字是切片的长度,第二个是数字底层数组长度,也就是切片的容量,数组容量的从切片的起始位置算起 //var b []int=make([]int,3,4) //fmt.Println(b) ////查看切片的长度 //fmt.Println(len(b)) ////查看数组的长度 //fmt.Println(cap(b)) //切片的数据结构表示,了解 //type slice struct { // Length int//切片的长度 // Capacity int//切片的容量 // ZerothElement *byte//数组的地址 //} //切片函数传递,传参必须接受固定的格式 //var a = make([]int,3,4)//切片长度为3,数组容量为4 //text(a) //copy,将b的值copy到a中,切b有值的索引不得大于a,若b的索引是5有值那么a直接会报错,因为长度不够 //var a = make([]int,4,4) //var b =make([]int,3,10000) //b[1]=99 //b[2]=888 //copy(a,b) //fmt.Println(a) //切片追加值 //内置函数append //var a [8]int=[8]int{1,2,3,4,5,6,7,8} //var b []int=a[2:3] //fmt.Println(cap(b)) //b = append(b,1,2,3,4,5,111,111,11) //fmt.Println(b) //fmt.Println(len(b)) //fmt.Println(cap(b)) //fmt.Println(a) //在append增加中的你的切出赖的b长度不够大,但是你增加的值却多那么就会将你a的后边的值改变, //若你增加的长度超过a那么就不会改变你的a的值,且你的长度会在原来a的基础上增加一倍 //多维切片 //生成一个数组套三个数组 //var a[][]string = make([][]string,3,5) //fmt.Println(a) //a[0] = make([]string,2,3) //fmt.Println(a) //多维切片初始化 //生成一个数组,套两个列表,值为大括号中的,数组中的个数随着初始化的值增加 var a[][]string = [][]string{{"1","2"},{"3","4"}} fmt.Println(a) } func text(c []int) { fmt.Println(c) } func main() { xxx() }