Sobes.tech
Junior — Middle

Cum se inserează un element nou în partea centrală a unui array dinamic (layer)?

sobes.tech AI

Răspuns de la AI

În Go, pentru a insera un element nou în mijlocul unui slice, trebuie să creezi un nou slice combinând părțile înainte și după poziția de inserție, precum și elementul de inserat. De exemplu, pentru a insera elementul x în poziția i a slice-ului s:

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

Aici, T este tipul elementelor din slice. Această metodă funcționează astfel:

  1. Se ia o secțiune de la început până la poziția i (fără a include i): s[:i]
  2. Se creează un slice cu un singur element x: []T{x}
  3. Se ia o secțiune de la poziția i până la sfârșit: s[i:]
  4. append-ul intern combină elementul de inserat și coada slice-ului
  5. append-ul extern adaugă totul la început

Exemplu:

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

Aceasta este metoda standard de inserare în mijlocul unui slice în Go.