Fork me on GitHub

Go中的数组

go中的数组不同于c/c++中的数组,是值类型,在函数参数传递的时候,会拷贝整个数组(不同于c/c++中数组名相当于指针)。

数组的长度为const,当不指定长度时,类型变为切片(slice)

数组的几种初始化方式:

1
2
3
4
5
6
7
8
9
10
a := [3]int{1, 2} // 未初始化元素值为 0。
b := [...]int{1, 2, 3, 4} // 通过初始化值确定数组⻓度。
c := [5]int{2: 100, 4:200} // 使⽤索引号初始化元素。
d := [...]struct {
name string
age uint8
}{
{"user1", 10}, // 可省略元素类型。
{"user2", 20}, // 别忘了最后⼀⾏的逗号。
}

内置函数 len 和 cap 都返回数组⻓度 (元素数量)。

1
2
a := [2]int{}
println(len(a), cap(a)) // 2,2
您的鼓励是我持之以恒的动力