Junior — Middle
Lze provést operaci čtení dat z řezu, který nebyl předem inicializován?
sobes.tech AI
Odpověď od AI
V jazyce Go jsou řezy (slices) struktury, které obsahují ukazatel na pole, délku a kapacitu. Pokud řez nebyl inicializován (tedy je roven nil), pokus o jeho čtení povede k panice.
Například:
var s []int // nil-řez
fmt.Println(s[0]) // panic: chyba za běhu: index mimo rozsah
Pro bezpečné čtení z řezu je třeba jej inicializovat, například pomocí make nebo přiřazením existujícího pole:
s := make([]int, 3)
fmt.Println(s[0]) // 0, bezpečné
Proto nelze číst z neinicializovaného řezu — to způsobí chybu za běhu.