Sobes.tech
Junior — Middle

Ako vložiť nový prvok do centrálnej časti dynamického poľa (layer)?

sobes.tech AI

Odpoveď od AI

V jazyku Go je vloženie nového prvku do stredu slice potrebné vytvoriť nový slice, ktorý spojí časti pred a po pozícii vloženia, a vložený prvok. Napríklad, ak chcete vložiť prvok x na pozíciu i v slice s:

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

Tu je T typ prvkov v slice. Tento spôsob funguje takto:

  1. Vezmeme úsek od začiatku do pozície i (bez i): s[:i]
  2. Vytvoríme slice s jedným prvkom x: []T{x}
  3. Vezmeme úsek od pozície i do konca: s[i:]
  4. Vnútorný append spojí vložený prvok a chvost slice
  5. Vonkajší append pridá všetko na začiatok

Príklad:

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

Toto je štandardný spôsob vkladania do stredu slice v Go.