Sobes.tech
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.