Go 语言学习 -6- 数组
2021-10-13 21:50:58
#
Go
Go语言中的数组是指同一种数据类型的元素的集合,这一点和其他许多静态语言一样。在Go语言中,数组从声明时就确定了大小,使用时可以修改成员,但是大小不可变。
1 | // 声明一个长度为3且元素数据类型为int的数组a |
数组定义
1 | var 数组变量名 [元素数量]T |
数组可以通过下标进行访问,下标是从0
开始,最后一个元素下标是:len-1
,访问越界(下标在合法范围之外),则触发访问越界,会panic。
数组初始化
初始化数组时可以使用初始化列表来设置数组元素的值。
1 | func f1() { |
按照上面的方法每次都要确保提供的初始值和数组长度一致,一般情况下我们可以让编译器根据初始值的个数自行推断数组的长度,例如:
1 | func f2() { |
我们还可以使用指定索引值的方式来初始化数组,例如:
1 | func f3() { |
数组遍历
Go语言中可以使用for
循环来遍历数组,也可以使用内置语法for range
语法遍历数组。
1 | func f4() { |
多维数组
Go语言也像其他语言一样支持多维数组。
定义
1 | func f5() { |
遍历
1 | func f6() { |
在多维数组中,只有第一维可以使用...
让编译器来推导数组长度。
数组是值类型
在Go语言中,数组是值类型,赋值和传参都是复制整个数组过去,因此改变副本的值,并不会引起本身的改变。
1 | func f7(x [3]int) { |
可以在终端看到\(a\)的值仍为\([1, 2, 3]\)。

- 数组支持 “==“、”!=” 操作符,因为内存总是被初始化过的。
[n]*T
表示指针数组,*[n]T
表示数组指针 。