Go语言编程--笔记2018-04-10

书中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

你可能感兴趣的:(Go语言编程--笔记2018-04-10)