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()
}