Maison >développement back-end >Golang >Comment puis-je éviter les assertions de type dans les branches de commutateur de type Go ?

Comment puis-je éviter les assertions de type dans les branches de commutateur de type Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-11 02:33:09870parcourir

How Can I Avoid Type Assertions Within Go's Type Switch Branches?

Éviter les assertions de type dans les branches de commutateur de type

Les commutateurs de type dans Go offrent un moyen pratique de gérer différents types de données. Cependant, dans certains cas, vous souhaiterez peut-être éviter d'affirmer explicitement le type d'une variable dans les branches de cas.

Solution :

Pour contourner le besoin d'assertions de type , vous pouvez affecter le résultat du changement de type directement à la variable en cours de vérification. Cela attribuera automatiquement la variable au type correct en fonction de la correspondance :

switch question := question.(type) {
case interfaces.ComputedQuestion:
    handleComputedQuestion(question, symbols)
case interfaces.InputQuestion:
    handleInputQuestion(question, symbols)
}

Dans cet exemple, la variable de question sera affectée au type approprié en fonction de la correspondance dans l'instruction switch. Par conséquent, vous pouvez transmettre la question directement aux fonctions handleComputedQuestion ou handleInputQuestion sans avoir besoin d'une assertion de type explicite.

Cette technique peut simplifier votre code et améliorer la lisibilité. En évitant les assertions de type dans les branches d'un commutateur de type, vous pouvez garder votre code plus concis et plus maintenable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn