Назад к вопросам
СБЕР
Junior — Middle
84
Каким образом вставить новый элемент в центральную часть динамического массива (слойса)?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go для вставки нового элемента в середину слайса нужно создать новый слайс, объединив части до и после позиции вставки, и вставляемый элемент. Например, чтобы вставить элемент x в позицию i слайса s:
s = append(s[:i], append([]T{x}, s[i:]...)...)
Здесь T — тип элементов слайса. Этот приём работает так:
- Берём срез с начала до позиции
i(не включаяi):s[:i] - Создаём слайс из одного элемента
x:[]T{x} - Берём срез с позиции
iдо конца:s[i:] - Внутренний
appendобъединяет вставляемый элемент и хвост слайса - Внешний
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.