Sobes.tech
Junior — Middle

Jak vložit nový prvek do centrální části dynamického pole (layers)?

sobes.tech AI

Odpověď od AI

V jazyce Go je vložení nového prvku do středu slice nutné vytvořit nový slice, který spojí části před a po pozici vložení a vložený prvek. Například, pokud chcete vložit prvek x na pozici i v slice s:

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

Zde je T typ prvků slice. Tento způsob funguje takto:

  1. Vezmeme řez od začátku do pozice i (bez i): s[:i]
  2. Vytvoříme slice s jedním prvkem x: []T{x}
  3. Vezmeme řez od pozice i do konce: s[i:]
  4. Vnitřní append spojí vložený prvek a ocas slice
  5. Vnější append přidá vše na začátek

Příklad:

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

Toto je standardní způsob vkládání do středu slice v jazyce Go.