package main
import "fmt"
//语法:var 数组变量名 [number] Type
func main() {
//default_value is zero
//1.初始化数组
var q[3]int = [3]int{1,2,3}//初始化数组
var r[3]int = [3]int{1,2}
fmt.Println(r[2],q[0])
//2.定义数组
var a[3] int
println(a[0])
println(a[len(a)-1])
//打印索引and元素
for i,v :=range a{
fmt.Printf("%d,%d\n",i,v)
}
//仅仅打印元素
for _,v:=range a{
fmt.Printf("%d\n",v)
}
//3.如果在数组的定义中,如果数组长度位置出现... 省略号,
//则表示数组的长度是根据初始化的值的个数来计算的
z :=[...]int{1,23,4}
println(z[0])
//数组的长度是数据类型的一个组成部分,因此【3】int 和【4】int 是两种不同的数据类型
//数据的长度必须是常量表达式,因为长度在编译阶段需要确定。
p :=[3]int{1,2,3}
//p = [4]int{1,2,3,4} error
println(p[1])
//比较2个数组是否相等(包括长度、元素类型)
//可以通过使用==,!=来判断2个数组是否相等,
// 只有两个数组等所有元素都是相等的时候,他们才相等。
//不能比较2个类型不同的数组
x:=[2]int{1,2}
b:=[...]int{1,2}
c:=[2]int{1,3}
println(x==b,x==c,b==c)
d:=[3]int{1,2}
//println(x==d)//mismatched types [2]int and [3]int
print(d[0])
//遍历数组,k索引,v元素
var team[3]string
team[0] = "hammer"
team[1] = "soldier"
team[2] = "mum"
for k,v:=range team {
println(k,v)
}
}