"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi mon compilateur renvoie-t-il une erreur « Arguments excessifs » lors de la transmission d'une structure DataResponse à JSON() ?

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

Publié le 2024-11-03
Parcourir:360

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.

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)
}

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 :

resp := DataResponse{200, user}

L'utilisation d'accolades garantit que le code initialise correctement la structure DataResponse avec le code fourni. arguments. 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().

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3