Jupyter AI

18 数组与切片之数组的定义与操作

📅 发表日期: 2024年8月11日

分类: 🐹Go 语言入门

👁️阅读: --

在学习 Go 语言的过程中,数组是一个非常重要的数据类型。它用于存储固定长度的数据,它的长度在定义时就已经确定,并且存储的数据类型是相同的。虽然数组在 Go 中不是最常用的数据结构,但理解它的定义与基本操作对于掌握切片的使用是非常必要的。

数组的定义

在 Go 中,数组的定义方式如下:

var arr [n]T

其中,n 表示数组的长度,T 是数组中元素的类型。例如,定义一个包含 5 个整数的数组可以这样写:

var intArr [5]int

这样,我们就得到一个名为 intArr 的数组,它可以存储 5 个整数。

初始化数组

在定义数组的同时,我们可以直接对数组进行初始化。例如:

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

我们也可以根据初始值让 Go 自动推断数组的长度:

var intArr = [...]int{1, 2, 3, 4, 5} // 根据值来推导数组长度

数组的操作

访问数组元素

访问数组的元素可以通过索引进行操作,索引是从 0 开始的。例如,要访问 intArr 的第一个元素,可以这样写:

firstElement := intArr[0]

修改数组元素

修改数组元素同样使用索引:

intArr[0] = 10 // 将第一个元素修改为 10

数组的长度和容量

可以使用内置的 len() 函数来获取数组的长度:

length := len(intArr) // length 将会是 5

遍历数组

我们可以通过 for 循环遍历数组中的元素:

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

或者使用 range 关键字:

for index, value := range intArr {
    fmt.Printf("Index: %d, Value: %d\n", index, value)
}

多维数组

Go 语言支持多维数组。我们可以来定义一个二维数组,例如一个 3 行 4 列的整数数组:

var matrix [3][4]int

同样也可以初始化:

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

访问和修改二维数组元素的方法类似:

fmt.Println(matrix[0][1]) // 输出 2
matrix[1][2] = 15         // 将 (1,2) 的值修改为 15

总结

在本篇文章中,我们介绍了 Go 语言中的数组,学习了数组的定义、初始化、访问、修改以及遍历等基本操作。数组是 Go 中的一种简单而重要的数据结构,尽管它的使用频率不如切片,但理解它对后续学习切片有着非常重要的帮助。

下一篇我们将讨论切片的基本用法,切片是 Go 中更灵活、更常用的数据结构,它是在数组的基础上发展而来,具有更强的数据处理能力。