数组和切片
Go 里数组和切片都能存一组同类型数据。
实际开发中,切片更常用。
一、数组
数组长度固定。
也可以直接初始化:
数组类型包含长度,所以 [3]int 和 [4]int 是不同类型。
二、切片
切片长度可变,是开发中最常用的列表结构。
注意写法区别:
切片没有固定长度。
三、make 创建切片
make([]int, 0, 10):
容量不是必须理解很深,先知道它是底层数组预留空间即可。
四、遍历切片
不需要下标:
五、切片截取
规则:
包含 start,不包含 end。
六、nil 切片和空切片
它们都可以 append:
返回 JSON 时,nil 切片可能编码成 null,空切片编码成 []。后端接口里如果希望前端总是看到数组,可以初始化为空切片。
七、切片是引用底层数组的视图
切片赋值不会复制所有元素,它们可能共享底层数组。
需要复制时:

