Go语言中的数组笔记
1. 数组的基本概念
在Go语言中,数组是一种固定大小的序列容器,用于存储相同类型的元素。数组的大小在声明时确定,之后不能改变。数组元素可以通过索引访问,索引从0开始。
2. 数组的声明与初始化
数组的声明包括类型和大小。初始化数组可以有几种方式:
-
声明并初始化:
var nums [5]int // 声明一个长度为5的整型数组,元素默认为0
-
初始化时赋值:
nums := [3]int{1, 2, 3} // 初始化一个长度为3的整型数组
-
省略长度:
如果在初始化时提供了所有元素,可以省略长度:nums := [...]int{1, 2, 3, 4, 5} // Go会根据元素数量自动推断长度
3. 访问与修改数组元素
数组元素可以通过索引访问和修改:
nums := [5]int{1, 2, 3, 4, 5}
fmt.Println(nums[0]) // 输出第一个元素:1
nums[0] = 10 // 修改第一个元素为10
4. 遍历数组
可以使用for
循环遍历数组的所有元素:
for i := range nums {
fmt.Println("索引:", i, "值:", nums[i])
}
5. 数组的切片操作
虽然数组大小固定,但可以通过切片操作获取数组的一部分,形成新的切片:
a := [5]int{1, 2, 3, 4, 5}
slice := a[1:3] // 获取索引1到2的元素,形成切片
6. 多维数组
Go语言支持多维数组,即数组的元素也是数组:
var matrix [2][3]int
matrix[0][0] = 1
7. 数组与切片的区别
- 大小:数组大小固定,切片大小可变。
- 存储:数组存储在栈中,切片存储在堆中。
- 功能:切片提供了更丰富的功能,如追加、缩容等。
结论
数组在Go语言中提供了基础的序列数据存储方式,适用于需要固定大小、性能敏感的场景。理解数组的使用和限制,对于Go语言的编程至关重要。在需要动态变化的序列数据时,考虑使用切片。