数组(Array) 数组是大小固定,相同数据类型,有序元素序列的集合。数组的大小在定义的时候就确认好的,同一个数组元素的数据类型是相同的。数组存储数据的内存是连续的,有序的元素序列,元素的存储有先后顺序。数组的索引下标从0开始,最大下标为数组的长度减1。
数组的声明
数组的声明语法如下:
var 变量名 [元素的数量]Type
语法说明如下所示:
var:是Go 语言中声明变量的关键字
变量名:声明的数组变量名
元素的数量:数组的大小,可以是一个表达式,最终通过编译计算的结果必须是整型数值
Type:数组的类型,可以是任意基本类型,包括数组本身,类型为数组本身时,是多维数组
举个栗子:
// 定义可以存储6个整数的数组 var a [6]int // 定义可以存储3个字符串的数组 var colors [3]string
数组的初始化
声明的变量如果没有初始化,Go 会默认为每个索引对应的值初始化零值
我们声明一个长度为3的整型数组,可以看出,当我们声明数组变量时,就为我们分配了一块包含3个整型数组的连续内存块,每块内存对应的值为0
var a [3]int32 fmt.Println(a) // [0 0 0] 默认为每个索引值初始化为零值
我们可以为数组赋值
var a [3]int32 a[0] = 3 a[1] = 6 a[2] = 5 fmt.Println(a) // [3 6 7]
1,手动赋值初始化
// 声明一个只能存放6个整型的数组
var nums [6]int
// 手动给nums数组赋值
for i := 0; i < len(nums); i++ {
nums[i] = i + 1
}
// 输出数组中的值
fmt.Println(nums)
2,字面值初始化
var a = [3]int{2,4,6}
3,使用…不固定数组长度,由编译器推导数组的长度
var a = [...]int{2,4,6}
数组的遍历
1,使用for根据数组的长度遍历
var a = [6]int{2, 5, 7, 9, 6, 3}
for i := 0; i < len(a); i++ {
fmt.Println(a[i])
}
2,使用for range遍历
var nums = [6]int{2, 5, 7, 9, 6, 3}
for index, num := range nums {
fmt.Println("index:", index, " num:", num)
}



