首页 > 编程笔记 > Go语言笔记 阅读:5

Go语言二维数组的声明、初始化和使用(附带实例)

二维数组是最简单的多维数组,可以把它当作特殊的一维数组。如果一个一维数组中的所有元素都是一维数组,那么这个一维数组就是一个二维数组。

在通常情况下,二维数组表示由行和列组成的二维表结构。因此,二维数组中的所有元素都可以通过与二维表结构中的行和列对应的索引访问。也就是说,二维数组中的所有元素都具有两个索引:

Go语言二维数组的声明

声明二维数组的语法格式如下:
var array_name [SIZE1][SIZE2]array_type
参数说明如下:
例如,声明一个 4 行 3 列的 int 类型二维数组 array。代码如下:
var array [4][3]int

Go语言二维数组的初始化

二维数组的初始化是指为二维数组中的元素赋值。下面介绍初始化二维数组的两种方式:

1) 先声明,再赋值

当为二维数组中的元素赋值时,须使用英文格式下的大括号:

例如,声明一个 4 行 3 列的 int 类型二维数组 array:
代码如下:
var array [4][3]int
array = [4][3]int{
    {1, 3, 5},    // 二维数组中的第 1 行元素
    {2, 4, 6},    // 二维数组中的第 2 行元素
    {7, 9, 11},   // 二维数组中的第 3 行元素
    {8, 10, 12},  // 二维数组中的第 4 行元素
}
注意,上述代码第 6 行的“}”后必须要有逗号,否则程序无法完成编译。如果把第 7 行的“}”置于第 6 行的“}”后,第 6 行的“}”后就可以省略逗号,程序将完成编译。

2) 使用“短变量声明”的语法格式初始化二维数组

按“短变量声明”的语法格式修改上述初始化二维数组 array 的代码。代码如下:
array := [4][3]int{
    {1, 3, 5},    // 二维数组中的第 1 行元素
    {2, 4, 6},    // 二维数组中的第 2 行元素
    {7, 9, 11},   // 二维数组中的第 3 行元素
    {8, 10, 12},  // 二维数组中的第 4 行元素
}

Go语言二维数组元素的访问

访问二维数组中的所有元素,接下来讲解一种比较简单的工具,即嵌套 for 循环语句。

例如,声明一个 4 行 3 列的 int 类型二维数组 array:
使用嵌套 for 循环语句访问二维数组中的所有元素,格式化输出二维数组中的每个元素。代码如下:
package main        // 声明 main 包

import "fmt"        // 导入 fmt 包,用于打印字符串

func main() {       // 声明 main() 函数
    array := [4][3]int{
        {1, 3, 5},    // 二维数组中的第 1 行元素
        {2, 4, 6},    // 二维数组中的第 2 行元素
        {7, 9, 11},   // 二维数组中的第 3 行元素
        {8, 10, 12},  // 二维数组中的第 4 行元素
    }
    var i, j int
    for i = 0; i < len(array); i++ {    // 遍历二维数组中的行
        for j = 0; j < len(array[i]); j++ {  // 遍历二维数组中的列
            fmt.Printf("array[%d][%d] = %d\n", i, j, array[i][j])  // 格式化输出二维数组中的每个元素
        }
    }
}
运行结果为:

array[0][0] = 1
array[0][1] = 3
array[0][2] = 5
array[1][0] = 2
array[1][1] = 4
array[1][2] = 6
array[2][0] = 7
array[2][1] = 9
array[2][2] = 11
array[3][0] = 8
array[3][1] = 10
array[3][2] = 12

除非明确数组的长度,否则 Go 语言中很少使用数组。也就是说,不能使用变量指定数组的长度。

相关文章