Sobes.tech
Junior — Middle

Hogyan lehet egy új elemet beszúrni egy dinamikus tömb (layer) középső részébe?

sobes.tech MI

Válasz az MI-től

Go nyelven, egy új elem beszúrásához egy szelet közepébe, létre kell hozni egy új szeletet, amely összeköti a beszúrás előtti és utáni részeket, valamint a beszúrandó elemet. Például, hogy az x elemet a s szelet i pozíciójára helyezzük:

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

Itt, T a szelet elemtípusa. Ez a módszer így működik:

  1. Vesszük az elejétől i pozícióig tartó részt (nem tartalmazva az i-t): s[:i]
  2. Létrehozunk egy szeletet egyetlen x elemmel: []T{x}
  3. Vesszük a i pozíciótól a végéig tartó részt: s[i:]
  4. A belső append összeköti a beszúrandó elemet és a szelet végét
  5. A külső append mindent az elejére tesz

Példa:

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

Ez a standard módszer a szelet közepébe való beszúráshoz Go nyelven.