package main
import "fmt"
func main() {
//[元素长度]元素类型{元素1,元素2}
a := [3]int{0,1,2}
fmt.Println(a)
//不固定长度数组
b := [...]int{2,3,12,31,23,12,3,12,3,12,312,3,214,21,412,4,434}
fmt.Println(b)
//另外一种定义数组的方式,将数组第五值改为23,其他值默认是0
var d = new([10]int)
d[5] = 23
fmt.Println(d)
zoom := [...]string{"狗","大象","猴子","长颈鹿"}
//循环数组
for i:=0;i<len(zoom);i++{
fmt.Println(zoom[i]+".跑")
}
//range 循环数组
for i,v:= range zoom{
fmt.Println(i,v)
}
fmt.Println(len(zoom))
fmt.Println(cap(zoom))
//二维数组
er := [3][4]int{
{0,1,3,4},
{5,6,7,8},
{9,10,11,12},
}
fmt.Println(er)
//切片
aaa := [3]int{1,2,3}
//取
c1 := aaa[2:]
fmt.Println(c1)
//
c2 := aaa[0:2]
fmt.Println(c2)
c3 := aaa[:2]
fmt.Println(c3)
//切片有append方法,数组没有
c4 := aaa[:]
c5 := append(c4, 4)
fmt.Println(c5)
//copy 将一个数组切片复制到另一个数组切片中,如果加入的两个数组切片不一样大,就会按照其中较小的那个数组切片的元素个数进行复制
slice1:=[]int{1,2,3,4,5}
slice2:=[]int{5,4,3}
copy(slice1,slice2) // 只会复制slice2的3个元素到slice1的前3个位置
fmt.Println("copy...",slice1)
copy(slice2,slice1)// 只会复制slice1的前3个元素到slice2中
fmt.Println("copy...",slice2)
//创建切片
//方法1 无默认值
var aa []int
//方法2 有默认值
bb := make([]int,4)
fmt.Println(aa,bb)
}