Junior — Middle
Is het mogelijk om een gegevensleesoperatie uit te voeren op een slice die niet eerder is geïnitialiseerd?
sobes.tech AI
Antwoord van AI
In Go zijn slices structuren die een pointer naar een array, een lengte en een capaciteit bevatten. Als een slice niet is geïnitialiseerd (d.w.z. gelijk aan nil), zal een poging om ervan te lezen een panic veroorzaken.
Bijvoorbeeld:
var s []int // nil-slice
fmt.Println(s[0]) // panic: runtime error: index out of range
Om veilig uit een slice te lezen, moet deze worden geïnitialiseerd, bijvoorbeeld met make of door een bestaande array toe te wijzen:
s := make([]int, 3)
fmt.Println(s[0]) // 0, veilig
Dus, lezen uit een niet-geïnitialiseerde slice is niet mogelijk — dit zal een runtime-fout veroorzaken.