切片是一个很小的对象,它对底层的数组(内部是通过数组保存数据的)进行了抽象,并提供相关的操作方法。切片是一个有三个字段的数据结构,这些数据结构包含 Golang 需要操作底层数组的元数据:

    切片的内部实现 - 图1

    这 3 个字段分别是

    • 指向底层数组的指针
    • 切片访问的元素的个数(即长度)
    • 切片允许增长到的元素个数(即容量)