Sobes.tech
Junior — Middle

Kako umetnuti novi element u centralni deo dinamičkog niza (layers)?

sobes.tech АИ

Одговор од АИ

U jeziku Go, za umetanje novog elementa u sredinu slice-a, potrebno je napraviti novi slice koji kombinuje delove pre i posle pozicije umetanja, kao i element koji se umeće. Na primer, za umetanje elementa x na poziciju i u slice s:

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

Ovde je T tip elemenata u slice-u. Ovaj metod funkcioniše na sledeći način:

  1. Uzimamo isečak od početka do pozicije i (ne uključujući i): s[:i]
  2. Kreiramo slice sa jednim elementom x: []T{x}
  3. Uzimamo isečak od pozicije i do kraja: s[i:]
  4. Unutrašnji append kombinuje umetnuti element i rep slice-a
  5. Spoljašnji append dodaje sve na početak

Primer:

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

Ovo je standardni način umetanja u sredinu slice-a u Go.