Sobes.tech
Junior — Middle

Mennyi elem van és milyen kapacitású lesz egy szelet, miután hozzáadtál egy elemet, ha eredetileg nem volt inicializálva?

sobes.tech MI

Válasz az MI-től

Ha egy szelet Go-ban kezdetben nincs inicializálva (azaz nil), és hozzáadunk egy elemet az append függvény segítségével, akkor:

  • A hozzáadás utáni elemek száma (len) 1 lesz.
  • A kapacitás (cap) a megvalósítástól függ, de általában kis kapacitással kezdődik, például 1 vagy 2.

Példa:

var s []int // nil-szelet
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // általában >= 1

Így, amikor az első elemet hozzáadjuk egy nil-szelethez Go-ban, a Go automatikusan memóriát fog foglalni egy új szelet számára, amelynek elegendő kapacitása van ennek az elemnek a tárolására.