Sobes.tech
Junior — Middle

Как да вмъкнете нов елемент в централната част на динамичен масив (слой)?

sobes.tech AI

Отговор от AI

В Go, за да вмъкнете нов елемент в средата на слайс, трябва да създадете нов слайс, който съчетава частите преди и след позицията на вмъкване, както и елемента за вмъкване. Например, за да вмъкнете елемента x на позиция i в слайса s:

s = append(s[:i], append([]T{x}, s[i:]...)...)

Тук, T е типът на елементите в слайса. Този метод работи така:

  1. Вземаме сегмент от началото до позиция i (без i): s[:i]
  2. Създаваме слайс с един елемент x: []T{x}
  3. Вземаме сегмент от позиция i до края: s[i:]
  4. Вътрешният append съчетава елемента за вмъкване и опашката на слайса
  5. Външният append добавя всичко в началото

Пример:

s := []int{1, 2, 4, 5}
x := 3
i := 2
s = append(s[:i], append([]int{x}, s[i:]...)...)
// сега s е: [1 2 3 4 5]

Това е стандартният начин за вмъкване в средата на слайс в Go.