A pesar de proporcionar todos los argumentos necesarios, el compilador genera un mensaje de error sobre argumentos excesivos al pasar una estructura DataResponse como parámetro a JSON( ).
El extracto de código proporcionado intenta crear una instancia de la estructura DataResponse y pasarla como parámetro a la función JSON(). Sin embargo, el compilador genera un error que indica que se han proporcionado demasiados argumentos.
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)
}
El error se produce debido a una sintaxis incorrecta para la inicialización de la estructura. Los espacios alrededor de las llaves significan una llamada a función en lugar de una inicialización de estructura usando llaves. Para resolver el problema, cambie el código de la siguiente manera:
resp := DataResponse{200, user}
El uso de llaves garantiza que el código inicialice correctamente la estructura DataResponse con la estructura proporcionada argumentos. El compilador ya no se quejará de demasiados argumentos.
Esta modificación garantiza que el compilador identifique con precisión el código como inicialización de la estructura y permite que la estructura DataResponse se use correctamente como parámetro para la función JSON().
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3