Junior — Middle
Hogyan különböztetjük meg a Go-ban a szeletek létrehozásának módjait var, make és index szerinti hozzárendelés vagy az append használatával?
sobes.tech MI
Válasz az MI-től
Go nyelvben a szeleteket különböző módokon lehet létrehozni, amelyek az inicializálásban és a memóriafoglalásban különböznek:
varsegítségével történő deklaráció — létrehoz egy nil-szeletet, amely nem mutat semmilyen tömbre, és hossza valamint kapacitása 0.
var s []int // nil-szelet
makesegítségével történő szeletkészítés — lefoglal egy adott hosszúságú és kapacitású tömböt, és egy olyan szeletet ad vissza, amely erre a tömbre mutat.
s := make([]int, 5) // 5 hosszú, nullákkal töltött szelet
-
Indexek szerinti hozzárendelés — csak akkor lehetséges, ha a szelet már inicializálva van, és van elég hosszúsága.
-
Elemek hozzáadása
append-tel — hozzáad elemeket a szelethez, és szükség esetén növeli a kapacitást, illetve új tömböt foglal.
s = append(s, 10) // hozzáadja a 10-es elemet a szelethez
Így a var üres nil-szeletet hoz létre, a make egy memóriával lefoglalt szeletet, az index szerinti hozzárendelés meglévő hosszúságot igényel, az append pedig dinamikusan bővíti a szeletet.