Malgré la fourniture de tous les arguments nécessaires, le compilateur renvoie un message d'erreur concernant les arguments excessifs lors du passage d'une structure DataResponse en tant que paramètre à JSON ( ).
L'extrait de code fourni tente de créer une instance de la structure DataResponse et de la transmettre en tant que paramètre à la fonction JSON(). Cependant, le compilateur génère une erreur indiquant que trop d'arguments sont donnés.
<code class="go">type DataResponse struct { Status int `json:"status"` Data interface{} `json:"data"` } func GetUser(rw http.ResponseWriter, req *http.Request, ps httprouter.Params) { user := models.User{} resp := DataResponse(200, user) JSON(rw, resp) }</code>
L'erreur se produit en raison d'une syntaxe incorrecte pour l'initialisation de la structure. Les espaces autour des accolades signifient un appel de fonction au lieu d'une initialisation de structure utilisant des accolades. Pour résoudre le problème, modifiez le code comme suit :
<code class="go">resp := DataResponse{200, user}</code>
L'utilisation d'accolades garantit que le code initialise correctement la structure DataResponse avec les arguments fournis. Le compilateur ne se plaindra plus d'un trop grand nombre d'arguments.
Cette modification garantit que le compilateur identifie avec précision le code comme initialisation de la structure et permet à la structure DataResponse d'être correctement utilisée comme paramètre pour la fonction JSON().
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!