package main

import "fmt"

func arrDefouat() {
	var arr1 [3]int            // 可以不给初值
	arr2 := [4]int{1, 2, 3, 4} // := 必须给赋值
	arr3 := [...]int{4, 3, 4, 4, 5, 6}
	// 字符串数组
	var s1 = [2]string{"hello", "world"}
	var s2 = [...]string{"你好", "世界"}
	var s3 = [...]string{1: "世界", 0: "你好"}
	s4 := [...]string{"你好", "世界"}

	var grid [5][4]int

	fmt.Println(arr1, arr2, arr3)
	fmt.Println(grid)

	fmt.Println(s1, s2, s3, s4)

	//
	for i := 0; i < len(arr3); i++ {
		fmt.Println(arr3[i])
	}
	//只要下标
	for i := range arr3 {
		fmt.Println(arr3[i])
	}
	// 下标 与 值
	for i, v := range arr3 {
		fmt.Println(i, v)
	}
	// 只要值
	for _, v := range arr3 {
		fmt.Println(v)
	}

}

//[4]int 为值类型
func printArray(arr *[4]int) {
	arr[0] = 99
	for i, v := range arr {
		fmt.Println(i, v)
	}
}
func main() {
	arrDefouat()
	var arr1 [4]int            // 可以不给初值
	arr2 := [4]int{1, 2, 3, 4} // := 必须给赋值
	arr3 := [...]int{4, 3, 4, 4}
	printArray(&arr1)
	printArray(&arr2)
	printArray(&arr3)

	fmt.Println(arr1, arr2, arr3)

}
