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.