Maison  >  Article  >  développement back-end  >  Pourquoi mon compilateur génère-t-il une erreur « Arguments excessifs » lors de la transmission d'une structure DataResponse à JSON() ?

Pourquoi mon compilateur génère-t-il une erreur « Arguments excessifs » lors de la transmission d'une structure DataResponse à JSON() ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 17:48:29239parcourir

Why Does My Compiler Throw an

Problèmes du compilateur avec les arguments de la structure DataResponse

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 ( ).

Problème

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>

Solution

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn