Interface d'implémentation de fonctions
Question :
Comment les fonctions et les types interagissent-ils dans une interface ?
Réponse :
Une interface définit les méthodes requises pour qu'un type implémente. Voici un exemple :
type Handler interface { ServeHTTP(*Conn, *Request) }
Exemple 1 : interface d'implémentation de type personnalisé
type Counter int func (ctr *Counter) ServeHTTP(c *http.Conn, req *http.Request) { fmt.Fprintf(c, "counter = %d\n", ctr) ctr++ }
Le type Counter implémente la méthode ServeHTTP, satisfaisant l'interface Handler.
Exemple 2 : Utilisation de HandlerFunc (fonctionne en tant que récepteur)
type HandlerFunc func(*Conn, *Request) func (f HandlerFunc) ServeHTTP(c *Conn, req *Request) { f(c, req) } var Handle404 = HandlerFunc(notFound)
Ici, un HandlerFunc est une fonction prenant une Conn et une Demande et ne renvoyant rien. Cela permet d'utiliser des fonctions comme notFound comme gestionnaire en leur ajoutant une méthode ServeHTTP via HandlerFunc. Cette méthode indirecte permet une flexibilité dans la mise en œuvre 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!