"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué mi compilador arroja un error de \"Argumentos excesivos\" al pasar una estructura DataResponse a JSON()?

¿Por qué mi compilador arroja un error de \"Argumentos excesivos\" al pasar una estructura DataResponse a JSON()?

Publicado el 2024-11-03
Navegar:817

Why Does My Compiler Throw an \

Problemas del compilador con argumentos de la estructura DataResponse

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

Problema

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

Solución

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

Último tutorial Más>

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