Utiliser des interfaces dans Go pour définir des interfaces de style RPC est une pratique courante. Prenons l'exemple suivant :
type MyService interface{ Login(username, password string) (sessionId int, err error) HelloWorld(sessionId int) (hi string, err error) }
Pour implémenter cette interface à l'aide de la réflexion, vous devrez traduire les appels de méthode en appels RPC, rassembler les paramètres d'entrée et réorganiser les résultats dans la sortie de la méthode.
Cependant, il n'existe aucun moyen simple d'utiliser la réflexion pour créer une valeur qui implémenterait l'interface en appelant des fonctions de réflexion.
Le package non sécurisé pourrait potentiellement permettre une telle une solution, mais elle serait extrêmement complexe et sujette aux erreurs. Il n'est pas recommandé de poursuivre cette approche.
Plutôt que de créer des fonctions avec réflexion, envisagez d'explorer des solutions alternatives qui correspondent mieux aux principes de conception de Go. Expliquez votre problème spécifique ou devez fournir une recommandation plus personnalisée.
Mises à jour :
Avec l'introduction de Reflect.FuncOf et Reflect.MakeFunc dans Go 1.5, il est désormais possible de créer des fonctions avec réflexion à souhait.
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!