了解数据结构一般会从数组开始,因为数组是切片和映射的基础数据结构,理解了额数组的工作原理,有助于理解切片和映射提供的优雅,强大的功能。
数组是具有相同类型的一组已经编号且长度固定的数据项序列,这个序列可以是有序的也可以是无序的,组成数组的各个变量常为数组的元素。这种类型可以是任意的原始类型int,string,自定义类型。数组长度必须是一个非负整数的常量,或常量表达式,数组长度也是数组类型的一部分,
数组的声明需要指定元素的数据类型,以及存储元素的数量, var array [5] int
数组一单声明,它存储的数据类型和数组长度便不能修改了,所以如果需要存储更多的元素,必须先创建一个更长的数组,然后再把原来数组里的值复制到新数组里。
go语言在声明变量时,都是使用相应类型的零值来初始化变量的,数组也一样。数组初始化是,其每个元素都被初始化为对应类型的零值。使用数组字面量可以快速创建并初始化数组,数组字面量可以声明数组里元素的数量,并指定每个元祖的值
array :=[5]int{10,20,30,40,50}
如果使用替换数组的长度,go语言会根据初始化数组元素的数量来确定该数组的长度,
array :=[...]int{10,20,30,40}
如果知道数组的长度,还可以给特定下标指定初始值
array :=[5]int{1:10,2:20}
和其他类C语言一样,go语言数组通过数组下标来读取或者修改数组元素,下标从0开始,第一个元素索引为0,第二个索引为1,依次类推。元素的数目必须固定的并且在声明数组时指定的最大为2GB
对于数