«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мой компилятор выдает ошибку «Чрезмерные аргументы» при передаче структуры DataResponse в JSON()?

Почему мой компилятор выдает ошибку «Чрезмерные аргументы» при передаче структуры DataResponse в JSON()?

Опубликовано 3 ноября 2024 г.
Просматривать:821

Why Does My Compiler Throw an \

Проблемы компилятора с аргументами структуры DataResponse

Несмотря на предоставление всех необходимых аргументов, компилятор выдает сообщение об ошибке о чрезмерном количестве аргументов при передаче структуры 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