数组是编程语言中的一种基础数据结构,用于存储一组同类型数据。Go 语言中也内置了对数组的支持,并提供了许多操作函数。合理使用数组可以在程序中保存和操作同类型数据。
本文将详细介绍 Go 语言数组的定义方式、初始化、常见操作、多维数组以及与切片的区别,并辅以完整示例代码,以便读者全面理解 Go 语言中的数组类型。
1
一、数组定义
可以使用以下语法定义数组类型:
var arr [n]type
其中 n 表示数组长度,type 表示元素类型。
例如定义一个长度为 5 的字符串数组:
var array [5]string
数组长度必须是常量,不能使用变量。
2
二、数组初始化
定义数组时可以直接初始化:
arr := [3]int{1, 2, 3}
如果不给出长度,Go 可以根据元素个数确定长度。
3
三、访问元素
可以使用索引下标访问数组元素,索引从 0 开始:
arr[0] = 5 value := arr[3]
4
四、修改数组
数组是值类型,赋值和传参会复制整个数组。因此无法直接修改数组:
arr2 := arr1 //复制数组 arr2[0] = 1 //无法改变arr1
只能直接修改索引位置的值来变更数组。
5
五、数组常见操作
数组支持长度计算 len、迭代、切片、排序等:
l := len(arr) //数组长度 for i, v := range arr { //迭代数组 } sort.Ints(arr) //排序
内置函数支持多种数组操作。
6
六、多维数组
Go 语言支持多维数组,最常见的是二维数组:
var grid [2][3]int grid[0][1] = 5
可以表示表格、图像等二维数据。
7
七、数组 vs 切片
数组定长不可变,切片长度可变。一般更多使用切片来动态存储数据。
8
总结
数组是基础的数据组织结构,Go 语言对数组提供了原生支持。合理正确使用数组可以解决一些问题,但更多会用到切片。