Ответ
При вставке в начало слайса все существующие элементы будут сдвинуты вправо, что требует создания нового массива и копирования всех элементов. Это операция O(n).
Пример:
s := []int{2, 3, 4}
s = append([]int{1}, s...) // Вставка в начало
fmt.Println(s) // [1 2 3 4]
Важные моменты:
- Происходит переаллокация памяти
- Все элементы копируются в новое место
- Для частых операций вставки в начало лучше использовать linked list или специальные структуры данных
- Если capacity достаточно, append может не выделять новую память, но для вставки в начало это редкость