第1课_数组和多维数组定义和使用
热度🔥:72 免费课程
授课语音
Go语言 数组和多维数组定义与使用
一、数组(Array)
1.1 数组概述
数组是一个固定大小的元素集合,这些元素具有相同的数据类型。在 Go 中,数组的大小是固定的,一旦定义了数组的大小,就不能改变。
1.1.1 数组的定义
数组的定义包括两个部分:
- 数组的类型(元素类型)
- 数组的长度
数组的定义格式如下:
var arrayName [size]Type
arrayName
是数组的名字。[size]
是数组的长度(即数组可以包含的元素个数)。Type
是数组中元素的类型。
1.1.2 数组初始化
数组可以通过两种方式初始化:
- 指定大小并逐个赋值
- 通过自动推导大小进行初始化(不指定长度,Go 会根据提供的元素数量自动推导出数组的长度)
1.2 数组的使用
1.2.1 访问数组元素
数组中的元素通过索引来访问,索引从 0
开始。
1.2.2 修改数组元素
通过索引可以直接修改数组中的元素。
代码案例:
1.3 数组的定义与使用示例
package main
import "fmt"
func main() {
// 定义一个整型数组,包含 5 个元素
var arr [5]int
// 赋值给数组的元素
arr[0] = 10
arr[1] = 20
arr[2] = 30
arr[3] = 40
arr[4] = 50
// 输出数组元素
fmt.Println("数组的元素为:", arr)
// 获取数组的长度
fmt.Println("数组的长度为:", len(arr))
// 访问数组元素
fmt.Println("访问数组的第一个元素:", arr[0])
fmt.Println("访问数组的最后一个元素:", arr[4])
// 修改数组元素
arr[2] = 35
fmt.Println("修改后的数组:", arr)
}
解释:
- 通过
var arr [5]int
定义了一个包含 5 个整数的数组。 - 使用
arr[0] = 10
给数组元素赋值。 - 使用
len(arr)
获取数组的长度。 - 访问数组元素
arr[0]
和arr[4]
,并修改数组中的某个元素。
二、多维数组(Multi-Dimensional Arrays)
2.1 多维数组概述
多维数组是数组中的元素是另一个数组,通常我们称为“二维数组”或“更高维度的数组”。在 Go 中,定义多维数组时,每一维的大小都需要明确指定。
2.1.1 二维数组
二维数组就是包含数组的数组。例如,我们可以将一个矩阵看作二维数组。
二维数组的定义格式如下:
var arrayName [size1][size2]Type
[size1]
表示数组的行数(第一维度)。[size2]
表示数组的列数(第二维度)。
2.2 数组的初始化
可以通过指定每一行的元素来初始化二维数组。
2.3 二维数组的使用
2.3.1 访问二维数组元素
二维数组的元素通过 [i][j]
的方式访问,其中 i
表示行,j
表示列。
2.3.2 修改二维数组元素
可以通过类似 arr[i][j]
的方式来修改二维数组的元素。
代码案例:
2.4 二维数组的定义与使用示例
package main
import "fmt"
func main() {
// 定义一个 3x3 的二维数组,并初始化
var matrix [3][3]int
matrix[0][0] = 1
matrix[0][1] = 2
matrix[0][2] = 3
matrix[1][0] = 4
matrix[1][1] = 5
matrix[1][2] = 6
matrix[2][0] = 7
matrix[2][1] = 8
matrix[2][2] = 9
// 输出二维数组
fmt.Println("二维数组:")
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
fmt.Print(matrix[i][j], " ")
}
fmt.Println()
}
// 修改二维数组中的元素
matrix[1][1] = 50
fmt.Println("修改后的二维数组:")
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
fmt.Print(matrix[i][j], " ")
}
fmt.Println()
}
}
解释:
- 定义并初始化一个
3x3
的二维数组。 - 使用
matrix[i][j]
访问和修改数组中的元素。 - 通过嵌套的
for
循环打印二维数组的内容。
三、三维数组及以上
3.1 三维数组
三维数组是数组的数组的数组。在 Go 中,三维数组的定义格式如下:
var arrayName [size1][size2][size3]Type
size1
是三维数组的第一维大小(表示有多少二维数组)。size2
是第二维数组的大小(每个二维数组有多少行)。size3
是第三维的大小(每行有多少个元素)。
代码案例:
3.2 三维数组的定义与使用示例
package main
import "fmt"
func main() {
// 定义一个 2x3x4 的三维数组
var arr [2][3][4]int
// 给三维数组赋值
arr[0][0][0] = 1
arr[0][0][1] = 2
arr[0][0][2] = 3
arr[0][0][3] = 4
arr[1][0][0] = 5
arr[1][0][1] = 6
arr[1][0][2] = 7
arr[1][0][3] = 8
// 输出三维数组
fmt.Println("三维数组:")
for i := 0; i < 2; i++ {
for j := 0; j < 3; j++ {
for k := 0; k < 4; k++ {
fmt.Print(arr[i][j][k], " ")
}
fmt.Println()
}
}
}
解释:
- 定义并初始化一个
2x3x4
的三维数组。 - 使用嵌套的
for
循环打印三维数组的内容。
四、总结
- 一维数组:简单的线性数据结构,大小固定,元素通过索引访问。
- 二维数组:可以看作是“矩阵”,通过行和列的索引访问元素。
- 多维数组:数组的数组的数组,适用于需要处理更多维度的数据结构。
- 初始化和访问:可以在声明时初始化数组,访问时通过索引来操作。
- 灵活性:Go 语言的数组一旦定义,长度不可更改,因此数组适用于数据量固定的情况。
通过这些基础和高级用法,Go 语言数组为处理复杂数据提供了强大的支持。