Встречается на 60% собеседований по Go

Как работает слайс в Go

Слайс в Go — это динамическая оболочка над массивом, предоставляющая гибкость работы с последовательностями данных. Он состоит из трех компонентов: указателя на массив, длины (len) и емкости (cap).

Пример:

go
s := make([]int, 3, 5) // len=3, cap=5
s = append(s, 1)       // [0,0,0,1], len=4, cap=5

Ключевые моменты:

  • При добавлении элементов сверх cap создается новый массив (удвоение или 1.25×), и данные копируются.
  • Срезы (s[1:3]) ссылаются на тот же массив — изменения затрагивают оригинал.
  • nil-слайс имеет len=0, cap=0, но append работает с ним.

Осторожно:

go
a := []int{1, 2, 3}
b := a[:2]             // b[0] = 99 изменит и a[0]!
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы