请说明 Go 中 slice 的底层结构,并解释其扩容机制。追问:如果一次性要插入当前容量 3 倍的数据,扩容会怎样进行?
考察说明
考察 slice 底层数据模型、扩容策略及大容量一次性增长的边界处理
回答思路
- 准确描述 slice 的指针、长度和容量字段
- 说明容量小于 1024 时翻倍、大于等于 1024 时增长约 1.25 倍的规则
- 针对一次性增长 3 倍容量,明确指出 Go 会直接分配所需容量,而非按原策略迭代
- 说明扩容后新底层数组与旧数组的分离,以及指针、cap 的更新
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。