Sobes.tech
Junior — Middle

Kuidas sisestada uus element dünaamilise massiivi (layers) keskossa?

sobes.tech AI

Vastus AI-lt

Go keeles, et uue elemendi sisestamiseks vahele, tuleb luua uus slice, mis ühendab enne ja pärast sisestuspositsiooni olevad osad ning sisestatud elemendi. Näiteks, et sisestada element x positsioonile i slice'is s:

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

Siin on T slice elementide tüüp. See meetod töötab järgmiselt:

  1. Võtame lõigu algusest kuni positsioonini i (ilma i): s[:i]
  2. Loome ühe elemendiga slice: []T{x}
  3. Võtame lõigu positsioonist i kuni lõpuni: s[i:]
  4. Sise-append ühendab sisestatud elemendi ja slice'i saba
  5. Välis-append lisab kõik algusesse

Näide:

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

See on standardne viis sisestamiseks slice'i keskpaika Go keeles.