Go 语言数组


Go 语言数组

什么是数组?

在计算机编程中,数组是一组具有相同类型的变量集合。每个变量可以使用一个唯一的索引(即下标)访问。数组在分配内存时是连续的,因此访问数组元素的时间复杂度为O(1)。

在Go语言中,数组是一种固定长度、保存一个特定类型的元素序列的数据结构。它是由同一种数据类型的元素组成的集合,每个元素在内存中占用相同大小的空间。数组的长度必须是一个常量表达式,并且考虑到数组是值类型,因此它们在传递给函数时会进行复制。

声明数组

声明数组的语法如下:

var variable_name [SIZE] variable_type

例如:

var numbers[5] int

以上声明了一个长度为5,类型为int的数组。

初始化数组

数组可以使用以下语法进行初始化:

var variable_name [SIZE] variable_type = [SIZE]variable_type {values}

例如:

var numbers = [5]int{1, 2, 3, 4, 5}

以上示例初始化了一个长度为5,类型为int的数组,初始赋值为1、2、3、4、5。

访问数组

通过索引访问数组元素的语法如下:

array_name[index]

例如:

numbers[0]

以上示例将返回上面的数组的第一个元素(即1)。

遍历数组

Go语言提供了两种遍历数组的方式。一种是使用for循环和索引,另一种是使用range关键字。

使用for循环和索引遍历数组的语法如下:

for i := 0; i < len(array_name); i++ {
    fmt.Println(array_name[i])
}

例如:

for i := 0; i < len(numbers); i++ {
    fmt.Println(numbers[i])
}

以上示例将遍历整个数组并将每个元素打印到控制台。

使用range关键字遍历数组的语法如下:

for index, value := range array_name {
    fmt.Println(index, value)
}

例如:

for index, num := range numbers {
    fmt.Println("Index:", index, "Value:", num)
}

以上示例将遍历整个数组,并将每个元素的索引和值打印到控制台。

多维数组

多维数组是数组的数组,其定义方式如下:

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

例如:

var matrix [3][3]int

以上示例定义了一个3x3的整数矩阵。

初始化多维数组的语法如下:

var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type = [SIZE1][SIZE2]...[SIZEN]variable_type { { values }, { values }...}

例如:

var matrix = [3][3]int{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }

以上示例初始化了一个3x3的整数矩阵。

访问多维数组的方式类似于访问一维数组,只需要添加一个额外的索引即可。

例如:

fmt.Println(matrix[0][0]) // 输出: 1
fmt.Println(matrix[1][1]) // 输出: 5

以上示例分别输出了矩阵的左上角和中间位置的元素。

总结

数组是Go语言中最基本的数据结构之一。Go语言提供了方便的语法来声明、初始化、访问和遍历数组。多维数组的使用方式与一维数组类似,只是需要使用额外的索引。熟练掌握数组的使用是进行Go程序开发的必备技能之一。