二十八、Go 语言 – 多维数组

Go语言支持多维数组

语法

Go语言声明多维数组的语法格式如下

var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type

下面的代码声明了三维整形数组:

var threedim [5][10][4]int

二维数组

二维数组是最简单的多维数组

二维数组本质上是由一维数组组成的

语法

Go语言定义二维数组的语法格式如下

var arrayName [ x ][ y ] variable_type

其中

  • variable_type 是数据类型,可以是基本数据类型,也可以是结构体或者 map 等数据类型
  • arrayName 为数组名

二维数组可认为是一个表格,x 为行,y 为列,下图演示了一个二维数组 a 为三行四列

 

初始化二维数组

二维数组可通过大括号来初始值

下面的代码初始化了一个 3 行 4 列的二维数组

a = [3][4]int{  
 {0, 1, 2, 3} ,   /*  第一行索引为 0 */
 {4, 5, 6, 7} ,   /*  第二行索引为 1 */
 {8, 9, 10, 11}   /*  第三行索引为 2 */

访问二维数组

二维数组可以通过指定坐标来访问,如数组中的行索引与列索引 a[ i ][ j ]

下面的代码可以访问 二维数组中第 2 行第 3 列的元素

int val = a[2][3]

输出二维数组

二维数组可以使用循环嵌套来输出元素

/**
 * file: main.go
 * author: pottercoding.cn 程序员波特,程序员编程资料站(pottercoding.cn)
 * Copyright © 2015-2065 pottercoding.cn. All rights reserved.
 */
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] )
      }
   }

编译运行以上 Go 语言范例,输出结果如下

$ go run main.go
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