1.1.1. 一、二维数组的声明:
多维数组里面分析二维数组就行了。其他的以二维数组类推。二维数组就是数组里面的元素是另一个数组。
1、直接声明:
// 示例: var intArr [3][2]int
var intArr [3][2]int
包含了下面几个意义:
- 第1维有3个元素,整个数组的长度len(intArr)是3。
- 第1维的每个元素都是一个数组,这个数组包含2个元素。
- 第2维是一个数组[2]int。这个数组整体是第1维的一个元素。
2、声明的时候初始化:
var 数组名 [大小][大小]类型 = [大小][大小]类型{ {初值..},{初值..} }
// 示例:var intArr [3][2]int = [3][2]int{ {3,5},{59,14} }
//fmt.Println(intArr)//只初始化2排,第3排是零值 [[3 5] [59 14] [0 0]]
3、其他类似于一维数组的声明:
var 数组名 [大小][大小]类型 = [大小][大小]类型{ {初值..},{初值..} }
- 省略第1维的长度:
var 数组名 [大小][大小]类型 = [...][大小]类型{ {初值..},{初值..} }
- 省略类型:
var 数 组名 = [大小][大小]类型{ {初值..},{初值..} }
- 省略类型并且省略第1维的长度:
var 数 组名 = [...][大小]类型{ {初值..},{初值..} }
示例如下:
//声明二维数组,第一维3个元素,第二维2个元素
var intArr [3][2]int
// 赋值:第1维
intArr[0][0] = 3
intArr[0][1] = 5
// 赋值:第2维
intArr[1][0] = 59
intArr[1][1] = 14
// 赋值:第3维
intArr[2][0] = 78
intArr[2][1] = 32
//[[3 5] [59 14] [78 32]]
fmt.Println(intArr)
1.1.2. 二、二维数组的变量。
1、两个循环遍历。
var intArr [3][2]int = [3][2]int{ {3,5},{59,} }
fmt.Println(intArr) // [[3 5] [59 0] [0 0]]
level2len := len(intArr[0])
//循环遍历
for i := 0; i< len(intArr); i++ {
for j := 0; j < level2len; j++ {
fmt.Printf("intArr[%v][%v]=%v \n",i,j,intArr[i][j])
}
}
2、for-ange 遍历。
var intArr [3][2]int = [3][2]int{ {3,5},{59,} }
//循环遍历
for i,v1 := range intArr{
for j,v2 := range v1 {
fmt.Printf("intArr[%v][%v]=%v \n",i,j,v2)
}
}