Junior — Middle
Je možné vykonať operáciu čítania údajov zo segmentu, ktorý nebol predtým inicializovaný?
sobes.tech AI
Odpoveď od AI
V jazyku Go sú rezy (slices) štruktúry, ktoré obsahujú ukazovateľ na pole, dĺžku a kapacitu. Ak rez nebol inicializovaný (t.j. je rovný nil), pokus o jeho čítanie povedie k panike.
Napríklad:
var s []int // nil-rez
fmt.Println(s[0]) // panic: chyba za behu: index mimo rozsah
Pre bezpečné čítanie z rezu je potrebné ho inicializovať, napríklad pomocou make alebo priradením existujúceho poľa:
s := make([]int, 3)
fmt.Println(s[0]) // 0, bezpečné
Preto nie je možné čítať z neinicializovaného rezu — spôsobí to chybu za behu.