【golang】slice数据结构的相关问题整理
问题1:slice是什么,它有什么特点?
答:在golang中,slice是一种可保存一组相同数据类型的数据结构。
问题2:slice的底层数据结构是什么样的?
答:slice的底层结构其实是有一个sliceHeader头,包含len、cap和data指针。data指针指向一个底层的数组。如下:
type sliceHeader struct {
Data uintptr
Len int
Cap int
}
问题3:slice中为什么会有length和cap两个字段,各自的应用场景是什么?
答:slice的length是slice的可见区域,即一个slice的变量只能看到length个元素,即使容量cap大于length,多余的cap对slice也是不可