切片
切片
切片组成要素:
指针:指向底层数组
长度:切片中元素的长度,不能大于容量
容量:指针所指向的底层数组的总容量
常见初始化方式
使用
make初始化
slice := make([]int, 5) // 初始化长度和容量都为 5 的切片
slice := make([]int, 5, 10) // 初始化长度为 5, 容量为 10 的切片使用简短定义
slice := []int{1, 2, 3, 4, 5}使用数组来初始化切片
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[0:3] // 左闭右开区间,最终切片为 [1,2,3]使用切片来初始化切片
sliceA := []int{1, 2, 3, 4, 5}
sliceB := sliceA[0:3] // 左闭右开区间,sliceB 最终为 [1,2,3]长度和容量
以上代码,预期输出如下:
注意点
多个切片共享一个底层数组的情况
对底层数组的修改,将影响上层多个切片的值
以上代码预期输出如下:
使用
copy方法可以避免共享同一个底层数组
示例代码如下:
以上代码预期输出如下:
小练习
如何使用 copy 函数进行切片部分拷贝?
最后更新于
这有帮助吗?