Maison  >  Article  >  développement back-end  >  Comment déclarer plusieurs contraintes d'interface dans Golang ?

Comment déclarer plusieurs contraintes d'interface dans Golang ?

PHPz
PHPzavant
2024-02-09 14:03:08868parcourir

Comment déclarer plusieurs contraintes dinterface dans Golang ?

PHP Editor Banana vous présentera comment déclarer plusieurs contraintes d'interface dans Golang. En Golang, nous pouvons implémenter plusieurs contraintes d'interface en utilisant plusieurs interfaces dans la déclaration de type d'interface. Cette approche nous permet de définir les interfaces de manière plus flexible pour nous adapter aux différents besoins de mise en œuvre. En utilisant plusieurs contraintes d'interface, nous pouvons faire en sorte qu'un type implémente plusieurs interfaces, offrant ainsi plus de fonctionnalités et de flexibilité. Ensuite, nous présenterons en détail comment déclarer plusieurs contraintes d'interface dans Golang.

Contenu de la question

Supposons que j'ai deux interfaces :

interface a {...}
interface b {...}

Maintenant, je veux définir une fonction qui accepte certains paramètres des interfaces a et b (c'est-à-dire que les paramètres implémentent les interfaces a et b) :

func test(param a & b) {...} // any similar syntax?

Je ne veux pas écrire une nouvelle interface pour intégrer d'autres interfaces à chaque fois que je veux référencer plusieurs interfaces, comme ceci :

interface C {
  A
  B
}
func test(param C) {...} //ok with 2 interfaces, what about 3, 4 or even 9?

Je ne sais pas comment exprimer les types d'intersection en golang, des idées ?

Workaround

n'est pas possible dans Go car il s'agit d'un flux de contrôle ambigu que Go est conçu pour éviter.

Les types ne sont pas obligatoires pour implémenter les interfaces par leur nom, ma suggestion est donc de déclarer une interface anonyme pour chaque paramètre, contenant uniquement les méthodes dont vous connaissez les besoins de la fonction.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer