数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。

Go语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从0开始。

数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可以让它在CPU缓存中待更久,所以迭代数组和移动元素都会非常迅速。

数组定义

di一种,通过指定数据类型和元素个数(数组长度)来声明数组。

声明一个长度为5的整数数组:

var array [5]int

声明一个长度为5的整数数组并初始化:

var array [5]int = [5]int{1, 2, 3, 4, 5}

di二种,一种快速创建和初始化数组的方法是使用数组字面值。数组字面值允许我们声明我们需要的元素个数并指定数据类型。

声明一个长度为5的字符串数组并初始化每个元素:

array := [5]string{"Linux", "Python", "J-a-v-a", "Golang", "DBA"}

di三种,如果你把长度写成…,Go编译器将会根据你的元素来推导出长度。

通过初始化值的个数来推导出数组容量:

array := [...]int{1, 2, 3, 4, 5}

di四种,如果我们知道想要数组的长度,但是希望对指定位置元素初始化。

声明一个长度为5的整数数组,为索引为1和3的位置指定元素初始化,剩余元素为该元素类型的默认值:

array := [5]int{1: 1, 3: 3}

注意:当一个数组被声明时,它里面包含的每个元素都会被初始化为该元素类型的默认值。一旦数组被声明了,那么它的数据类型跟长度都不能再被改变。如果你需要更多的元素,那么只能创建一个你想要长度的新的数组,然后把原有数组的元素拷贝过去。