一、概念
对数组连续片段的引用,属于引用类型。一般用于快速地操作一块数据集合
二、声明
slice [开始位置:结束位置]
- slice:目标切片对象
- 开始、结束位置:对应目标切片对象的索引
使用make关键字
三、使用特性
- 取出的元素数量=结束位置-开始位置
- 取出的元素不包含最后位置对应的索引,切片最后一个元素获取:
slice[len(slice)-1] - 越界会报错,最后一个位置的数字不能大于数组长度/元素个数
- 缺省可以用空格:
arr[ : ]、arr[ : number]、arr[number: ] - 空切片:
arr[0:0],一般用于切片复位
四、切片复制
格式:
copy(destSlice []T, srcSlice []T) int
- 括号内是两个参数(目标切片在前,源切片在后),参数类型必须都是同类型切片(
[]T); - 返回值是
int类型,表示「实际复制的元素个数」(由两个切片长度的较小值决定); - 注意:参数间用逗号分隔,切片类型不需要重复写(同类型即可)
- 当元素是基本类型(如
int、string)时,copy会复制 “值本身”,修改目标切片不影响源切片(深拷贝)
- 当元素是引用类型(如切片、map、指针)时,
copy仅复制 “引用(内存地址)”,修改目标切片会影响源切片(浅拷贝)
五、切片扩容
使用append新增切片的元素
容量不够:
容量够: