面试真题

Go · 中等 · 小红书

切片的底层原理

中等 Go 🎤 小红书
参考答案
结论:切片是引用类型,底层为包含指针、长度、容量的结构体。原理:运行时表示为reflect.SliceHeader,含Data(unsafe.Pointer指向底层数组首地址)、Len(int)、Cap(int)。切片本身不存储数据,仅描述底层数组的一段连续内存。创建方式:make([]T,len,cap)会分配底层数组并初始化切片头;数组切片s[a:b]生成新切片,Data指向原数组索引a,Len=b-a,Cap=原Cap-a,共享底层数组。多个切片可指向同一数组,修改元素会互相影响;append扩容后可能指向新数组。
题目整理自公开面经,答案由校招宝自研生成,仅供参考