Junior — Middle
Koje posledice nastaju pri korišćenju metode append za slice deklarisan bez početnih parametara?
sobes.tech АИ
Одговор од АИ
Ako je slice u Go deklarisan bez početnih parametara, na primer var s []int, on je inicijalno jednak nil i ne pokazuje na dodeljeni niz. Prilikom korišćenja funkcije append, Go automatski dodeljuje novi niz i dodaje elemente, vraćajući novi slice sa potrebnom kapacitetom.
To znači da append sigurno radi sa nil-slice-ima, i možete pisati:
var s []int // nil-slice
s = append(s, 1, 2, 3) // sada s pokazuje na novi niz sa elementima
Posledice:
- Nije potrebno inicijalizovati slice pre korišćenja
append. - Pri prvom pozivu
append, dodeljuje se memorija. - Ako je slice nil, onda je
len(s) == 0icap(s) == 0.
Stoga je korišćenje append sa nil-slice-ima standardna praksa u Go, koja olakšava rad sa dinamičkim kolekcijama.