Go 编译器:尽管给出了所有参数,但给出的参数太多

Go 编译器:尽管给出了所有参数,但给出的参数太多,go,Go,我想使用structDataResponse作为JSON()的参数来响应用户。通过初始化DataResponse的一个实例,我得到了一条错误消息,即给出了太多的参数,但给出了所有必要的参数 type DataResponse struct { Status int `json:"status"` Data interface{} `json:"data"` } func GetUser(rw http.ResponseWriter, req *http.Re

我想使用struct
DataResponse
作为
JSON()
的参数来响应用户。通过初始化
DataResponse
的一个实例,我得到了一条错误消息,即给出了太多的参数,但给出了所有必要的参数

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{}
    // Fetching user from db

    resp := DataResponse(200, user)
    JSON(rw, resp) // rw is the ResponseWriter of net/http
}
编译器引发以下错误消息:

too many arguments to conversion to DataResponse: DataResponse(200, user)
DataResponse
需要两个给定的参数,
Data
是一个接口,因此它应该接受
模型。User
作为数据类型

语法错误。尝试使用大括号进行结构初始化:

resp := DataResponse{200, user}
                    ^         ^

我太专注于参数,没有看到丢失的花括号。
resp := DataResponse{200, user}
                    ^         ^