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

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

数组的定义

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

1
var arr [n]T

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

1
var intArr [5]int

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

初始化数组

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

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

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

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

数组的操作

访问数组元素

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

1
firstElement := intArr[0]

修改数组元素

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

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

数组的长度和容量

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

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

遍历数组

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

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

或者使用 range 关键字:

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

多维数组

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

1
var matrix [3][4]int

同样也可以初始化:

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

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

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

总结

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

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

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

https://zglg.work/go-zero/18/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论