Maison > développement back-end > Golang > Comment puis-je vérifier si une valeur Go implémente une interface spécifique au moment de la compilation ou de l'exécution ?

Comment puis-je vérifier si une valeur Go implémente une interface spécifique au moment de la compilation ou de l'exécution ?

Mary-Kate Olsen
Libérer: 2024-12-24 11:03:11
original
469 Les gens l'ont consulté

How Can I Check if a Go Value Implements a Specific Interface at Compile Time or Runtime?

Vérifier si une valeur implémente une interface dans Go

Valider si une valeur est conforme à une interface spécifiée est un aspect crucial de la programmation Go. Cette question se pose lorsque le type de la valeur est inconnu, nécessitant une vérification dynamique.

Vérification dynamique avec assertions de type

Dans l'extrait de code fourni, la variable val est une instance de la chaîne MyType, qui ne n'implémente pas directement l'interface Somether. Pour vérifier dynamiquement le type, utilisez une assertion de type :

_, ok := val.(Somether)
Copier après la connexion

Cette assertion tente de convertir la valeur val en l'interface Somether. La variable ok indique si la conversion a réussi (vrai) ou non (faux). Cependant, cette approche nécessite que la valeur soit un type d'interface, ce qui n'est pas toujours le cas.

Vérification au moment de la compilation avec les types intégrés

Une méthode plus explicite consiste à intégrer l'interface souhaitée dans le type de la valeur :

var _ Somether = (*MyType)(nil)
Copier après la connexion
Copier après la connexion

Cette syntaxe attribue un pointeur nul du type valeur à une variable d'interface. Si le type valeur implémente l’interface, le code sera compilé sans erreur. Sinon, le compilateur générera une erreur.

Par exemple, dans ce cas :

func (mt MyType) Method() bool { return true }
Copier après la connexion

Le type MyType implémente la méthode de l'interface Somether. Par conséquent, le code suivant sera compilé et ne fera rien :

var _ Somether = (*MyType)(nil)
Copier après la connexion
Copier après la connexion

Importance de la vérification au moment de la compilation

En général, il est préférable d'utiliser des vérifications au moment de la compilation pour garantir que les valeurs implémentent les interfaces au moment de la compilation plutôt que de compter sur des vérifications dynamiques au moment de l'exécution. Les vérifications au moment de la compilation offrent une sécurité de type plus forte et peuvent éviter des erreurs imprévues.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal