Junior — Middle
Kako razlikovati načine kreiranja seka u Go koristeći var, make i dodeljivanje po indeksima ili putem append?
sobes.tech АИ
Одговор од АИ
U jeziku Go, seževi (slices) mogu se kreirati na različite načine, koji se razlikuju u inicijalizaciji i dodeli memorije:
- Deklaracija pomoću
var— kreira nil-sež, koji ne pokazuje na nikakav niz i ima dužinu i kapacitet 0.
var s []int // nil-sež
- Kreiranje seža pomoću
make— dodeljuje niz sa zadatom dužinom i kapacitetom i vraća sež koji pokazuje na taj niz.
s := make([]int, 5) // sež dužine 5, popunjen nulama
-
Dodela po indeksima — moguća je samo ako je sež već inicijalizovan i ima dovoljnu dužinu.
-
Dodavanje elemenata pomoću
append— dodaje elemente u sež, i ako je potrebno, povećava kapacitet i dodeljuje novi niz.
s = append(s, 10) // dodaje element 10 u sež
Na ovaj način, var kreira prazan nil-sež, make — sež sa dodeljenom memorijom, dodela po indeksima zahteva postojeću dužinu, a append dinamički proširuje sež.