Maison > développement back-end > Golang > Comment puis-je vérifier l'implémentation de l'interface dans Go ?

Comment puis-je vérifier l'implémentation de l'interface dans Go ?

DDD
Libérer: 2024-12-16 20:34:16
original
184 Les gens l'ont consulté

How Can I Check for Interface Implementation in Go?

Comprendre les vérifications d'implémentation d'interface dans Go

Dans Go, déterminer si une valeur implémente une interface peut être une tâche déroutante pour les débutants. Cet article vise à clarifier le processus avec des exemples à suivre.

Pourquoi utiliser les vérifications d'implémentation d'interface ?

Normalement, le compilateur effectue automatiquement des vérifications d'implémentation d'interface en fonction de la valeur connue taper. Cependant, lorsque vous travaillez avec des valeurs de types inconnus, il devient nécessaire de vérifier manuellement si une interface est implémentée.

Exemple d'analyse de code

Considérez l'exemple suivant :

type Somether interface {
    Method() bool
}

type MyType string

func (mt MyType) Method2() bool {
    return true
}

func main() {
    val := MyType("hello")
    _, ok := val.(Somether)
    var _ Iface = (*MyType)(nil)
}
Copier après la connexion

Méthode 1 : Assertion avec commutateur de type

Dans le première tentative, le commutateur de type (_(Somether)) est utilisé pour vérifier si la valeur val implémente l'interface Somether. Cependant, cette approche nécessite un changement de type, ce qui peut ne pas être optimal.

Méthode 2 : Affectation à une interface vide

La deuxième méthode utilise l'interface vide :

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

Cette technique attribue un pointeur de type MyType vers une variable d'interface vide. Si MyType implémentait Somether, le code serait compilé sans erreur. Cependant, comme ce n'est pas le cas, une erreur de compilation sera générée indiquant que MyType n'implémente pas Somether.

Simplicité des vérifications d'implémentation de l'interface

C'est important à noter que ces vérifications sont principalement utilisées lorsque le type de la valeur est inconnu. Lorsque le type est connu, le compilateur vérifie automatiquement l'implémentation de l'interface.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal