# Go 语言多维数组
Go 语言支持多维数组,以下为常用的多维数组声明方式:
```
var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type
```
以下实例声明了三维的整型数组:
```
var threedim [5][10][4]int
```
## 二维数组
二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的。二维数组定义方式如下:
```
var arrayName [ x ][ y ] variable_type
```
variable_type 为 Go 语言的数据类型,arrayName 为数组名,二维数组可认为是一个表格,x 为行,y 为列,下图演示了一个二维数组 a 为三行四列:
![](https://box.kancloud.cn/2015-12-29_5682353c4a057.jpg)
二维数组中的元素可通过 _a[ i ][ j ]_ 来访问。
## 初始化二维数组
多维数组可通过大括号来初始值。以下实例为一个 3 行 4 列的二维数组:
```
a = [3][4]int{
{0, 1, 2, 3} , /* 第一行索引为 0 */
{4, 5, 6, 7} , /* 第二行索引为 1 */
{8, 9, 10, 11} /* 第三行索引为 2 */
}
```
## 访问二维数组
二维数组通过指定坐标来访问。如数组中的行索引与列索引,例如:
```
int val = a[2][3]
```
以上实例访问了二维数组 val 第三行的第四个元素。
二维数组可以使用循环嵌套来输出元素:
```
package main
import "fmt"
func main() {
/* 数组 - 5 行 2 列*/
var a = [5][2]int{ {0,0}, {1,2}, {2,4}, {3,6},{4,8}}
var i, j int
/* 输出数组元素 */
for i = 0; i < 5; i++ {
for j = 0; j < 2; j++ {
fmt.Printf("a[%d][%d] = %d\n", i,j, a[i][j] )
}
}
}
```
以上实例运行输出结果为:
```
a[0][0] = 0
a[0][1] = 0
a[1][0] = 1
a[1][1] = 2
a[2][0] = 2
a[2][1] = 4
a[3][0] = 3
a[3][1] = 6
a[4][0] = 4
a[4][1] = 8
```
- Go 语言简介
- Go 语言环境安装
- Go 语言结构
- Go 语言基础语法
- Go 语言数据类型
- Go 语言变量
- Go 语言常量
- Go 语言运算符
- Go 语言条件语句
- Go 语言 if 语句
- Go 语言 if...else 语句
- Go 语言 if 语句嵌套
- Go 语言 switch 语句
- Go 语言 select 语句
- Go 语言循环语句
- Go 语言 for 循环
- Go 语言循环嵌套
- Go 语言 break 语句
- Go 语言 continue 语句
- Go 语言 goto 语句
- Go 语言函数
- Go 语言函数值传递值
- Go 语言函数引用传递值
- Go 语言函数作为值
- Go 语言函数闭包
- Go 语言函数方法
- Go 语言变量作用域
- Go 语言数组
- Go 语言多维数组
- Go 语言向函数传递数组
- Go 语言指针
- Go 语言指针数组
- Go 语言指向指针的指针
- Go 语言指针作为函数参数
- Go 语言结构体
- Go 语言切片(Slice)
- Go 语言范围(Range)
- Go 语言Map(集合)
- Go 语言递归函数
- Go 语言类型转换
- Go 语言接口
- Go 错误处理
- Go 语言开发工具