Как добавить элемент в середину слайса

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

Ответ

Для добавления элемента в середину слайса используйте встроенную функцию append с разбиением слайса. Вот пример:

package main

import "fmt"

func main() {
    s := []int{1, 2, 4, 5}
    index := 2 // позиция для вставки
    value := 3 // значение для вставки

    // Разрезаем слайс и добавляем элемент
    s = append(s[:index], append([]int{value}, s[index:]...)...)
    fmt.Println(s) // [1 2 3 4 5]
}

Важные нюансы:

  1. Операция создает новый базовый массив при необходимости
  2. Для больших слайсов лучше использовать copy для оптимизации
  3. Если индекс выходит за границы слайса - будет паника
  4. Для частых вставок рассмотрите другие структуры данных (например, связанный список)