Vérification de l'implémentation de l'interface dans Go
Dans Go, l'utilisation d'interfaces fournit un moyen de définir un comportement commun pour différents types de données. Cependant, déterminer si une valeur implémente une interface spécifique peut être délicat.
Assertion de type ou commutateur de type
La méthode la plus courante pour vérifier si une valeur implémente une interface se fait via une assertion de type :
_, ok := val.(Somether)
Cette assertion de type vérifie si la valeur val peut être convertie en type Somether. Si c'est le cas, il attribue la valeur convertie à _ et définit ok sur true ; sinon, il définit ok sur false.
Cependant, l'assertion de type suppose que val est une interface, ce qui n'est pas toujours le cas. Pour une vérification de type explicite, vous pouvez utiliser la méthode de commutation de type :
var _ Somether = (*MyType)(nil)
Dans cet exemple, nous déclarons une variable sans nom de type Somether et la définissons égale à un pointeur nul de type MyType. Cette syntaxe garantit que le compilateur vérifie si MyType implémente Somether, déclenchant une erreur de compilation si ce n'est pas le cas.
Simplicité des types connus
Il est important de noter que si le type de val est connu, le compilateur vérifie automatiquement s'il implémente Somether. Les vérifications explicites décrites ci-dessus ne sont nécessaires que lorsque le type est inconnu.
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!