书中35页谈到 基于数组切片创建数组切片 的时候
4. 基于数组切片创建数组切片
类似于数组切片可以基于一个数组创建,数组切片也可以基于另一个数组切片创建。下面的
例子基于一个已有数组切片创建新数组切片:
oldSlice := []int{1, 2, 3, 4, 5}
newSlice := oldSlice[:3] // 基于oldSlice的前3个元素构建新数组切片
有意思的是,选择的oldSlicef元素范围甚至可以超过所包含的元素个数,比如newSlice
可以基于oldSlice的前6个元素创建,虽然oldSlice只包含5个元素。只要这个选择的范围不超
过oldSlice存储能力(即cap()返回的值),那么这个创建程序就是合法的。newSlice中超出
oldSlice元素的部分都会填上0。
其中 有意思的是 开始我在实际实践中,如果newSlice := oldSlice[:3]改成newSlice := oldSlice[:6]会报错:panic: runtime error: slice bounds out of range
网友评论