Senior
Bij welke optie van typeconversie is paniek mogelijk en welke constructie voorkomt dit?
sobes.tech AI
Antwoord van AI
Panie kan optreden tijdens type assertion (type assertion) als het werkelijke type van de waarde niet overeenkomt met het verwachte type. Bijvoorbeeld:
var i interface{} = "string"
// Poging om te converteren naar int zal paniek veroorzaken
n := i.(int) // panic: interface conversie: interface {} is string, niet int
Om paniek te voorkomen, wordt een constructie met twee returnwaarden gebruikt — de tweede geeft aan of de conversie succesvol was:
n, ok := i.(int)
if !ok {
// foutafhandeling van de conversie
}
Op deze manier voorkomt de veilige type-assertie paniek en kan de situatie correct worden afgehandeld wanneer de types niet overeenkomen.