MST

星途 面试题库

面试题:Go语言切片扩容机制的触发条件

在Go语言中,简述切片在什么情况下会触发扩容机制?扩容时新容量是如何计算的?
44.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

切片触发扩容机制的情况

当向切片中添加元素(如使用 append 函数),而当前切片的容量不足以容纳新元素时,就会触发扩容机制。

扩容时新容量的计算规则

  1. 当原切片容量小于1024时:新容量会直接翻倍。例如原容量为5,添加元素触发扩容后,新容量变为10。
  2. 当原切片容量大于或等于1024时:新容量会增加原容量的1/4。例如原容量为1024,添加元素触发扩容后,新容量变为1024 + 1024/4 = 1280。

此外,扩容后的容量还需要满足能够容纳新添加的元素。如果计算出的新容量仍无法容纳新元素,会继续扩大容量直到满足需求。