Dans Go, rencontrer l'erreur « pas assez d'arguments dans l'appel à l'expression de méthode » peut prêter à confusion. Le détail crucial à comprendre est que l'erreur se produit lorsqu'une méthode d'instance est invoquée à l'aide de la syntaxe au niveau du package. Pour approfondir ce problème, analysons un exemple spécifique de votre code :
func main() { var in []byte actual, err2 := JSONParser.Parse(in) }
Ici, vous essayez d'invoquer la méthode Parse de type JSONParser. Cependant, vous l'appelez comme s'il s'agissait d'une fonction dans la portée du package. L'approche correcte consiste à créer d'abord une instance de JSONParser, puis à appeler la méthode sur cette instance.
func main() { var in []byte jp := JSONParser{} // Create an instance of JSONParser actual, err2 := jp.Parse(in) // Now call the method on the instance }
La raison du message d'erreur trompeur est que le récepteur de la méthode (le paramètre entre parenthèses précédant le nom de la fonction ) se comporte comme tout autre argument passé à la fonction. Par conséquent, le compilateur interprète l'absence d'un récepteur explicitement fourni comme un nombre d'arguments insuffisant.
En résumé, lorsque vous invoquez une méthode d'instance, assurez-vous d'instancier le type, puis d'appeler la méthode sur l'instance, plutôt que de l'invoquer directement en tant que fonction dans la portée du package.
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!