多维数组适合场景:
适合管理具有父子关系或者与坐标系相关联的数据
声明多维数组的语法
var array_name [size1][size2]...[sizeN] arry_type
#其中:array_name为数组的名字
size1、size2、sizeN等是数组每一个维度的 长度
array_type:是数组的类型,例如:int、string等
示例1
//声明一个多维整型数组,两个维度的长度分别为4和2
//声明一个多维数组,有4组,每组都有两个元素
var arry01 [4][2]int //初始化一个二维整型数组,并打印结果 arry01 = [4][2]int{{10,11},{20,21},{30,31},{40,41}} fmt.Println(arry01) //结果: [[10 11] [20 21] [30 31] [40 41]]
示例2
//声明一个多维整型数组,两个维度的长度分别为4和2 var arry02 [4][2]int //初始化该数组中索引为1和3的元素,并打印结果 arry02 = [4][2]int{1:{100,101},3:{200,201}} fmt.Println(arry02) //结果: [[0 0] [100 101] [0 0] [200 201]] #其他没初始化的元素,会有默认值,int就是0,string就是空 //初始化索引为1的元素,把里面的值100改成101 //初始化索引为3的元素,把里面的值201改成200 arry02 = [4][2]int{1:{101,101},3:{200,200}} fmt.Println(arry02) //结果: [[0 0] [101 101] [0 0] [200 200]]
下图展示了上面示例1和2中声明的二维数组在每次声明并初始化之后包含的值
示例3:为二维数组的每个元素赋值
var array03 [2][2]int //声明一个2 x 2的二维整型数组 fmt.Println(array03) //打印没赋值的数组 array03[0][0] = 10 //给索引为0的元素里,0下标的值 赋值为10 fmt.Println(array03) array03[0][1] = 20 //给索引为0的元素里,1下标的值 赋值为20 fmt.Println(array03) array03[1][0] = 30 //给索引为1的元素里,0下标的值 赋值为30 fmt.Println(array03) array03[1][1] = 40 //给索引为1的元素里,1下标的值 赋值为40 fmt.Println(array03) //查看打印结果: [[0 0] [0 0]] [[10 0] [0 0]] [[10 20] [0 0]] [[10 20] [30 0]] [[10 20] [30 40]]