Senior
Dans quelle option de conversion de type est-il possible de paniquer et quelle construction permet de l'éviter?
sobes.tech IA
Réponse de l'IA
La panique peut survenir lors de l'assertion de type (type assertion) si le type réel de la valeur ne correspond pas à celui attendu. Par exemple :
var i interface{} = "chaîne"
// La tentative de conversion en int provoquera une panique
n := i.(int) // panic : conversion d'interface : interface {} est string, pas int
Pour éviter la panique, on utilise une construction avec deux valeurs de retour — la seconde indique si la conversion a réussi :
n, ok := i.(int)
if !ok {
// gestion de l'erreur de conversion
}
Ainsi, l'assertion de type sécurisée permet d'éviter la panique et de gérer correctement la situation lorsque les types ne correspondent pas.