golang的二维数组
二维数组
二维数组其实可以理解为一维数组,只不过这个一维数组的每个数据又是一维数组
二维数组快速入门
func main() {
var a [3][3]int = [3][3]int{{1, 1, 1}, {2, 2, 2}, {3, 3, 3}}
fmt.Println(a)
for i := 0; i < len(a); i++ {
fmt.Println(a[i])
}
for i := 0; i < len(a); i++ {
for j := 0; j < len(a[i]); j++ {
fmt.Printf("%v ", a[i][j])
}
fmt.Println()
}
}
输出结果:
[[1 1 1] [2 2 2] [3 3 3]]
[1 1 1]
[2 2 2]
[3 3 3]
1 1 1
2 2 2
3 3 3
二维数组的使用
- 声明
- 标准声明(显式指定两个维度大小):
var 数组名 [大小][大小]类型 = [大小][大小]类型{{初值…},{初值…}} - 混合声明(第一维自动推导):
var 数组名 [大小][大小]类型 = […] [大小]类型{{初值…},{初值…}} - 简化声明(类型推断):
var 数组名 = [大小][大小]类型{{初值…},{初值…}} - 完全简化声明(双维自动推导):
var 数组名 = […] [大小]类型{{初值…},{初值…}}
- 标准声明(显式指定两个维度大小):
二维数组的遍历
- 双层for循环遍历
var a [3][3]int = [3][3]int{{1, 1}, {2, 2, 2}, {3, 3, 3}}
fmt.Println(a)
for i := 0; i < len(a); i++ {
for j := 0; j < len(a[i]); j++ {
fmt.Printf("%v ", a[i][j])
}
fmt.Println()
} - for-range
for _, v := range a {
for _, vv := range v {
fmt.Printf("%v ", vv)
}
fmt.Println()
}