Go 语言数组
在 Go 语言中,数组是一种固定长度且元素类型相同的数据结构。数组是一个值类型,这意味着在赋值或传递时它们的每个元素都会被复制。以下是关于 Go 语言数组的一些基本要点:
声明数组
要声明一个数组,你需要指定数组的长度和元素的类型。例如:
var a [5]int // 声明一个长度为 5 的整数数组
这行代码声明了一个长度为 5 的数组,数组中的每个元素都是 int
类型,默认初始化为零值(对于 int
,零值是 0
)。
初始化数组
你可以在声明数组的同时初始化数组的值:
a := [5]int{1, 2, 3, 4, 5}
或者,可以使用省略号 ...
让编译器自动计算长度:
a := [...]int{1, 2, 3}
访问和修改数组元素
数组元素是通过索引访问的,索引是从 0
开始的:
a[0] = 10 // 修改第一个元素的值
fmt.Println(a[0]) // 访问第一个元素的值
遍历数组
你可以使用 for
循环遍历数组的元素:
for i := 0; i < len(a); i++ {
fmt.Println(a[i])
}
或者使用 range
关键字,更为简洁:
for index, value := range a {
fmt.Printf("Index: %d, Value: %d\n", index, value)
}
如果只需要值而不需要索引,可以使用下划线 _
忽略索引:
for _, value := range a {
fmt.Println(value)
}
数组作为函数参数
由于数组是值类型,当你将数组传递给函数时,会复制整个数组。因此,函数接收时修改数组并不会影响到原来的数组:
func modifyArray(arr [3]int) {
arr[0] = 10
}
a := [3]int{1, 2, 3}
modifyArray(a)
fmt.Println(a) // 输出:[1 2 3]
如果需要在函数中修改数组,可以传递一个指向数组的指针:
func modifyArray(arr *[3]int) {
arr[0] = 10
}
a := [3]int{1, 2, 3}
modifyArray(&a)
fmt.Println(a) // 输出:[10 2 3]
结论
数组是 Go 语言中一种基础的数据结构,尽管不如切片灵活,但它们在需要固定大小集合时非常有用。理解数组的基本操作和特性对掌握 Go 编程是很有帮助的。