跳转至

8.数组

声明

go语言也有数组类似,其声明如下:

var array [10]int

go语言中还有一种声明方式,可以在一行语句中同时完成声明和赋值:

dwarfs := [5]string{"a", "b", "c", "d", "e"} // 未赋值的元素将赋值该类型的相应零值

也可以向C语言一样自动判断长度,使用...代表长度,go编译器将自动判断长度:

array := [...]int{1, 12, 3, 100}

Warning

go语言中的数组与C语言一样,是不可变更长度的。

同时,不论两个数组长度之间的关系如何,只要长度不等,就是两种数据类型。

元素的访问

go语言中数组元素的访问和C语言一样,使用array[index]访问,且索引index从0开始。

和Python一样,数组的长度可以用len(array)确定。

数组之间的复制

两个数组变量可以复制,也可以用一个数组初始化另一个变量。但是复制时会拷贝值,而不是引用同一个地址。

同理,当数组作为变量传递给函数时,与C或Python不同,传递的是 ,而不是指针。在函数内更改并不会影响原变量。故一般不使用数组作为函数的参数,而使用go语言中的slice类型。

高维数组

和C或Python一样,go语言也有高维数组,或者称为数组的数组,声明方式如下:

array := [3][3]int