Sobes.tech
Junior — Middle

Може ли извршити операцију читања података из среза који није претходно иницијализован?

sobes.tech АИ

Одговор од АИ

U Go-u, seče (slices) su strukture koje sadrže pokazivač na niz, dužinu i kapacitet. Ako seč nije inicijalizovan (tj. jednak je nil), pokušaj čitanja sa njega će dovesti do panike.

Na primer:

var s []int // nil-seč
fmt.Println(s[0]) // panic: greška u izvršavanju: indeks van opsega

Da bi se sigurno čitalo iz seča, on mora biti inicijalizovan, na primer pomoću make ili dodeljivanjem postojećeg niza:

s := make([]int, 3)
fmt.Println(s[0]) // 0, sigurno

Dakle, iz neinicijalizovanog seča ne može se čitati — to će izazvati grešku u izvršavanju.