Junior — Middle
Lehetséges olyan helyzet, amikor a len változó kisebb hosszúságot mutat, mint a tömb vagy szelet tényleges mérete?
sobes.tech MI
Válasz az MI-től
Go nyelvben a len változó egy tömb vagy szelet esetén mindig a jelenlegi hosszúságot tükrözi, amit a beépített len() függvény ad vissza.
- Egy tömb esetén a
lenmindig megegyezik a tömb méretével, és nem változik. - Egy szelet esetén a
lenmegmutatja a szeletben lévő elemek számát, ami lehet kisebb vagy egyenlő a szelet kapacitásával.
Olyan helyzet, amikor a len kisebb a tömb tényleges méreténél, lehetetlen, mivel a tömb len értéke fix és megegyezik a méretével.
A szelet esetén a hossz lehet kisebb a kapacitásnál, de nem lehet nagyobb a ténylegesen elérhető elemek számánál index szerint.
Példa:
arr := [5]int{1,2,3,4,5}
fmt.Println(len(arr)) // 5
slice := arr[1:3]
fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4
Itt a szelet hossza 2, míg a kapacitás 4. De a hossz nem lehet nagyobb a tényleges szeletméretnél.