package main
import "fmt"
func main() {
// 数组同一类型的集合
var arr [50]int
// 1 赋值
// 操作数组,下标从0开始,索引从0到len()-1
for i := 0; i < len(arr); i++ {
arr[i] = i + 1
fmt.Printf("arr[%v] = %v\n", i, arr[i])
}
// 定义数组的时候,数组的元素个数必须是常量
// n := 5
// var arr2 [n]int //err
fmt.Printf("------------------------------")
// 2 迭代打印
for i, data := range arr {
fmt.Printf("arr[%d] = %d\n", i, data)
}
fmt.Printf("------------------------------\n")
/*********数组的初始化*************/
// 1 全部初始化
var a [5]int = [5]int{1, 2, 3, 4, 5}
fmt.Println("a=", a)
// 使用自动推导类型
b := [5]int{1, 2, 3, 4, 5}
fmt.Println("b=", b)
// 2 部分初始化,没有初始化的部分,自动赋值为0
c := [5]int{1, 2, 3}
fmt.Println("c=", c)
// 3 指定元素进行初始化
d := [5]int{2: 10, 4: 20}
fmt.Println("d=", d)
fmt.Println("==============数组的比较和赋值=========")
// 数组支持比较,只支持==或者!=,比较是不是每一个元素都一样,数组比较,数组的数据类型要一样
f := [5]int{1, 2, 3, 4, 5}
g := [5]int{1, 2, 3, 4, 5}
h := [5]int{1, 4, 5}
fmt.Println("f==g", f == g)
fmt.Println("f==h", f == h)
// 同类型的数组,可以进行赋值
var m [5]int
m = f
fmt.Println("m=", m)
}