📜  go 数组的长度是其类型的一部分. - 打字稿(1)

📅  最后修改于: 2023-12-03 15:15:21.443000             🧑  作者: Mango

Go 数组的长度是其类型的一部分

在 Go 语言中,数组是一种固定长度且相同类型的数据结构。数组的长度是其类型的一部分,这意味着不能将一个长度为 5 的整型数组赋值给一个长度为 6 的整型数组。

声明数组

在 Go 中,可以使用以下方式声明一个数组:

var a [5]int          // 定义一个长度为 5 的整数数组,初始值全为 0
var b = [5]int{1, 2}   // 定义一个长度为 5 的整数数组,前两个元素为 1 和 2,其他元素为 0
var c = [...]int{1, 2} // 定义一个长度未知的整数数组,前两个元素为 1 和 2
访问数组元素

可以使用索引访问数组中的元素:

a := [5]int{1, 2, 3, 4, 5}
fmt.Println(a[0]) // 输出:1
fmt.Println(a[2]) // 输出:3
修改数组元素值

可以直接使用索引修改数组元素的值:

a := [5]int{1, 2, 3, 4, 5}
a[1] = 10
fmt.Println(a) // 输出:[1 10 3 4 5]
数组长度是类型的一部分

由于数组长度是其类型的一部分,因此不能将一个长度为 5 的整型数组赋值给一个长度为 6 的整型数组:

a := [5]int{1, 2, 3, 4, 5}
var b [6]int
b = a // 编译错误:cannot use a (type [5]int) as type [6]int in assignment
总结

Go 数组是一种方便和高效的数据结构。数组的长度是其类型的一部分,这意味着不能将长度不同的数组赋值给一个变量。需要注意的是,在大多数情况下,切片是更好的选择,因为它不仅长度可变,还具有更多的功能。