数组

数组的声明

数组是一段固定长度的连续内存区域。数组的长度定义后不可更改,长度使用 len() 获取。

1
2
3
4
5
6
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
3
4
arr[:]      代表所有元素
arr[:5] 代表前五个元素,即区间的左闭右开
arr[5:] 代表从第5个开始(不包含第5个)
len(arr) 数组的长度

贴士:上述操作会引发类型的变化,数组将会转化为Go中新的数据类型slice,见09节

数组的遍历

方式一:for循环遍历

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

for i := 0; i < len(arr); i++ {
fmt.Println(arr[i])
}
方式二:for-range遍历
1
2
3
4
5
6
arr := [3]int{1,2,3}

for i, v := range arr {
fmt.Println(i) //元素位置
fmt.Println(v) //元素值
}

数组使用注意事项

数组创建完长度就固定,不可以再追加元素;

长度是数组类型的一部分,因此[3]int与[4]int是不同的类型;

数组之间的赋值是值的赋值,即当把一个数组作为参数传入函数的时候,传入的其实是该函数的副本,而不是他的指针。

作者

ฅ´ω`ฅ

发布于

2021-06-10

更新于

2021-06-10

许可协议


评论