Comment surmonter l'erreur « La méthode d'interface ne doit avoir aucun paramètre de type » dans Go Generics ?
Lors de l'implémentation de génériques dans Go, vous pouvez rencontrer l'erreur "la méthode d'interface ne doit avoir aucun paramètre de type." Cette erreur se produit car, de par leur conception, les paramètres de type ne sont pas autorisés dans les méthodes d'interface. Cette décision de conception a été prise pour éviter toute ambiguïté et toute implication en termes de performances résultant de multiples interprétations de méthodes avec des paramètres de type dans les définitions d'interface.
Pour résoudre ce problème, vous pouvez déplacer le paramètre de type dans la définition de type d'interface. Considérez ce code modifié :
type Reader[V Unmarshaler] interface { Read(bucket []byte, k ...[]byte) ([][]byte, error) ReadDoc(bucket []byte, factory func() (V, error), k ...[]byte) ([]V, error) } type Unmarshaler interface { UnmarshalKV(v []byte) error }
Dans ce code modifié, le paramètre de type V est déplacé de la signature de la méthode vers la définition du type d'interface elle-même. Cela paramétre efficacement l'interface avec le type V, vous permettant de spécifier le type concret lors de l'implémentation 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!