Sobes.tech
Junior — Middle

Mit jelent a capacity tulajdonság egy slice esetében Go-ban, ha nem adja meg kifejezetten a létrehozásakor?

sobes.tech MI

Válasz az MI-től

Go-ban a szelet egy olyan szerkezet, amely egy mutatót tartalmaz egy tömbre, egy hosszúságot (len) és egy kapacitást (capacity).

Ha a szelet létrehozásakor a kapacitást nem adják meg kifejezetten, akkor az a szelet hosszával lesz egyenlő. A kapacitás megmutatja, hogy hány elemet tud a szelet tárolni anélkül, hogy új memóriát foglalnánk.

Például:

s := make([]int, 3) // len=3, cap=3

Itt a kapacitás 3, mivel nem adták meg külön.

Ha a kapacitás nagyobb, mint a hossz, a szelet bővíthető a kapacitásig anélkül, hogy új tömböt foglalnánk.