Sobes.tech
Junior — Middle

Jak wstawić nowy element do centralnej części dynamicznej tablicy (layers)?

sobes.tech AI

Odpowiedź od AI

W Go, aby wstawić nowy element w środek slice’a, należy utworzyć nowy slice łączący części przed i po pozycji wstawiania oraz element do wstawienia. Na przykład, aby wstawić element x na pozycję i w slice’u s:

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

Tutaj T to typ elementów slice’a. Ta metoda działa w następujący sposób:

  1. Pobieramy fragment od początku do pozycji i (bez i): s[:i]
  2. Tworzymy slice z jednym elementem x: []T{x}
  3. Pobieramy fragment od pozycji i do końca: s[i:]
  4. Wewnętrzny append łączy element do wstawienia i ogon slice’a
  5. Zewnętrzny append dodaje wszystko na początek

Przykład:

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

To jest standardowa metoda wstawiania w środek slice’a w Go.