上QQ阅读APP看书,第一时间看更新
3.2 slice
3.2.1 结构定义
slice(切片)是一个拥有相同类型元素的可变长序列,且slice的定义与数组的定义非常像,它就是没有长度的数组。
对于slice的结构体,reflect.SliceHeader的定义如下:
type SliceHeader struct { Data uintptr Len int Cap int }
可以看到,slice有三个属性:指针、长度和容量。指针指向slice开始访问的第一个元素;长度是切片的长度;容量是指从slice开始访问的第一个元素到底层数组最后一个元素的元素个数。slice的长度不可以超过slice的容量。
说明
切片的底层是数组,Go语言的切片对应着底层数组,一个底层数组可以对应多个slice。