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 | for i := 0; i < len(intArr); i++ { |
或者使用 range
关键字:
1 | for index, value := range intArr { |
多维数组
Go 语言支持多维数组。我们可以来定义一个二维数组,例如一个 3 行 4 列的整数数组:
1 | var matrix [3][4]int |
同样也可以初始化:
1 | var matrix = [3][4]int{ |
访问和修改二维数组元素的方法类似:
1 | fmt.Println(matrix[0][1]) // 输出 2 |
总结
在本篇文章中,我们介绍了 Go 语言中的数组,学习了数组的定义、初始化、访问、修改以及遍历等基本操作。数组是 Go 中的一种简单而重要的数据结构,尽管它的使用频率不如切片,但理解它对后续学习切片有着非常重要的帮助。
下一篇我们将讨论切片的基本用法,切片是 Go 中更灵活、更常用的数据结构,它是在数组的基础上发展而来,具有更强的数据处理能力。
18 数组与切片之数组的定义与操作