儘管提供了所有必要的參數,但在將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}
resp := DataResponse{200, user}使用大括號可確保程式碼使用提供的資料正確初始化DataResponse 結構體論據。編譯器將不再抱怨參數太多。 此修改可確保編譯器準確地將程式碼識別為結構體初始化,並允許 DataResponse 結構體正確用作 JSON() 函數的參數。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3