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

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

PHPz
Libérer: 2024-02-09 14:03:08
avant
941 Les gens l'ont consulté

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 {...}
Copier après la connexion

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?
Copier après la connexion

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?
Copier après la connexion

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!

source:stackoverflow.com
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