← 返回首页

Go中slice的底层结构是怎样的?

slice 的底层数据其实也是数组,slice 是对数组的封装,它描述一个数组的片段。slice 实际上是一个结构体,包含三个字段:长度、容量、底层数组。

// runtime/slice.go

type slice struct {

   array unsafe.Pointer // 元素指针

   len int // 长度

   cap int // 容量

}