Apesar de fornecer todos os argumentos necessários, o compilador lança uma mensagem de erro sobre argumentos excessivos ao passar uma estrutura DataResponse como parâmetro para JSON( ).
O trecho de código fornecido tenta criar uma instância da estrutura DataResponse e passá-la como um parâmetro para a função JSON(). No entanto, o compilador gera um erro indicando que muitos argumentos foram fornecidos.
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)
}
O erro ocorre devido à sintaxe incorreta para inicialização da estrutura. Os espaços ao redor das chaves significam uma chamada de função em vez de uma inicialização de estrutura usando chaves. Para resolver o problema, altere o código da seguinte maneira:
resp := DataResponse{200, user}
O uso de chaves garante que o código inicialize corretamente a estrutura DataResponse com o fornecido argumentos. O compilador não reclamará mais de muitos argumentos.
Essa modificação garante que o compilador identifique com precisão o código como inicialização da estrutura e permite que a estrutura DataResponse seja usada corretamente como um parâmetro para a função JSON().
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3