Несмотря на предоставление всех необходимых аргументов, компилятор выдает сообщение об ошибке о чрезмерном количестве аргументов при передаче структуры DataResponse в качестве параметра в JSON( ).
Приведенный фрагмент кода пытается создать экземпляр DataResponse и передайте ее в качестве параметра функции JSON(). Однако компилятор выдает ошибку, указывающую, что задано слишком много аргументов.
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)
}
Ошибка возникает из-за неправильного синтаксиса инициализации структуры. Пробелы вокруг фигурных скобок означают вызов функции вместо инициализации структуры с использованием фигурных скобок. Чтобы решить эту проблему, измените код следующим образом:
resp := DataResponse{200, user}
Использование фигурных скобок гарантирует, что код правильно инициализирует структуру DataResponse с предоставленными аргументы. Компилятор больше не будет жаловаться на слишком большое количество аргументов.
Эта модификация гарантирует, что компилятор точно идентифицирует код как инициализацию структуры и позволяет правильно использовать структуру DataResponse в качестве параметра для функции JSON().
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3