面试真题

Go · 中等 · 小米

golang 切片原理

中等 Go 🎤 小米
参考答案
结论:切片是引用类型,底层为数组的抽象,结构体含指针、长度、容量。核心要点:1.切片头包含ptr指向底层数组,len当前元素数,cap从ptr开始数组总长,cap(s[a:b])=cap(s)-a;2.切片操作s[a:b]共享底层数组,修改会互相影响;3.扩容:append时若len超cap,cap<1024翻倍,否则约1.25倍增长,分配新数组并拷贝;4.nil切片ptr为nil,空切片ptr非nil但len=cap=0,两者len都为0。示例:s:=make([]int,2,4)后append超cap触发扩容。
题目整理自公开面经,答案由校招宝自研生成,仅供参考