文章目录


存放元素的容器, 必须指定数组的长度和存储的变量类型,长度不可变
长度是数组类型的一部分
var a1 [length]type
数组不初始化,默认元素是0值,布尔值对应false

package main

import "fmt"

func main() {
	//数组初始化
	/* var a [3]int64 = [3]int64{1, 2, 3}
	fmt.Print(a) */

	//根据初始值进行初始化,自动推断数组长度
	/* a_10 := [...]int64{0, 1, 3, 4}
	fmt.Println(a_10) */

	//初始化方式3:根据索引初始化
	//a2 := [5]int{0: 1, 4: 2}
	//fmt.Println(a2) //[1, 0, 0, 0, 2]

	//数组的遍历
	/* for i := 0; i < len(a2); i++ {
		fmt.Println(i, a2[i])
	}

	for i, v := range a2 {
		fmt.Println(i, ",", v)
	} */

	//多维数组
	var duoweitest bool = false
	if duoweitest {
		var a3 [3][2]int64 = [3][2]int64{
			[2]int64{1, 1},
			[2]int64{2, 2},
			[2]int64{3, 3},
		}
		fmt.Println(a3)

		//多维数组的便利
		for i := 0; i < len(a3); i++ {
			for j := 0; j < len(a3[i]); j++ {
				fmt.Print(a3[i][j], " ")
			}
			fmt.Println()
		}

		for _, v := range a3 {
			for _, v_2 := range v {
				fmt.Print(v_2, ",")
			}
			fmt.Println()
		}
	}

	//数组是值类型
	var shuZuShiZhiLeiXing bool = true
	if shuZuShiZhiLeiXing {
		a3 := [3]int{1, 2, 3}
		b3 := a3 //b3 是值类型,也就是C++中的值传递,浅拷贝
		b3[0] = 10
		fmt.Println(a3[0], ",", b3[0]) //1,10
	}
}