Obwohl alle erforderlichen Argumente bereitgestellt werden, gibt der Compiler eine Fehlermeldung über übermäßige Argumente aus, wenn eine DataResponse-Struktur als Parameter an JSON übergeben wird( ).
Der bereitgestellte Codeauszug versucht, eine Instanz der DataResponse-Struktur zu erstellen und sie als Parameter an die JSON()-Funktion zu übergeben. Der Compiler gibt jedoch einen Fehler aus, der darauf hinweist, dass zu viele Argumente angegeben wurden.
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)
}
Der Fehler tritt aufgrund einer falschen Syntax für die Strukturinitialisierung auf. Die Leerzeichen um die geschweiften Klammern bedeuten einen Funktionsaufruf anstelle einer Strukturinitialisierung mit geschweiften Klammern. Um das Problem zu beheben, ändern Sie den Code wie folgt:
resp := DataResponse{200, user}
Durch die Verwendung von geschweiften Klammern wird sichergestellt, dass der Code die DataResponse-Struktur korrekt mit den bereitgestellten initialisiert Argumente. Der Compiler wird sich nicht mehr über zu viele Argumente beschweren.
Diese Änderung stellt sicher, dass der Compiler den Code genau als Strukturinitialisierung identifiziert und ermöglicht, dass die DataResponse-Struktur korrekt als Parameter für die JSON()-Funktion verwendet wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3