Что произойдём если попытаться вставить в начало слайса

«Что произойдём если попытаться вставить в начало слайса» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При вставке в начало слайса все существующие элементы будут сдвинуты вправо, что требует создания нового массива и копирования всех элементов. Это операция O(n).

Пример:

s := []int{2, 3, 4}
s = append([]int{1}, s...) // Вставка в начало
fmt.Println(s) // [1 2 3 4]

Важные моменты:

  1. Происходит переаллокация памяти
  2. Все элементы копируются в новое место
  3. Для частых операций вставки в начало лучше использовать linked list или специальные структуры данных
  4. Если capacity достаточно, append может не выделять новую память, но для вставки в начало это редкость