Я хочу использовать 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
является интерфейсом поэтому он должен принять models.User
как тип данных.
Я был слишком сфокусирован на параметрах, которые я не видел отсутствующие фигурные скобки. – user3147268