1.5 KiB
1.5 KiB
一 数组
1.1 数组的声明
数组是一段固定长度的连续内存区域。数组的长度定义后不可更改,长度使用 len() 获取。
var arr1 [10]int //定义长度为10的整型数组,很少这样使用
arr2 [5]int := [5]int{1,2,3,4,5} //定义并初始化
arr3 := [5]int{1,2,3,4,5} //自动推导并初始化
arr4 := [5]int{1,2} //指定总长度,前几位被初始化,没有的使用零值
arr5 := [5]int{2:10, 4:11} //有选择的初始化,没被初始化的使用零值
arr6 := [...]int{2,3,4} //自动计算长度
1.2 数组常用操作
arr[:] 代表所有元素
arr[:5] 代表前五个元素,即区间的左闭右开
arr[5:] 代表从第5个开始(不包含第5个)
len(arr) 数组的长度
贴士:上述操作会引发类型的变化,数组将会转化为Go中新的数据类型slice,见09节
1.3 数组的遍历
方式一:for循环遍历
arr := [3]int{1,2,3}
for i := 0; i < len(arr); i++ {
fmt.Println(arr[i])
}
方式二:for-range遍历
arr := [3]int{1,2,3}
for k, v := range arr {
fmt.Println(k) //元素位置
fmt.Println(v) //元素值
}
1.4 数组使用注意事项
数组创建完长度就固定,不可以再追加元素;
长度是数组类型的一部分,因此[3]int
与[4]int
是不同的类型;
数组之间的赋值是值的赋值,即当把一个数组作为参数传入函数的时候,传入的其实是该函数的副本,而不是他的指针。