コンパイラの問題: 構造体をパラメータとして使用する際の過剰な引数
JSON 関数のパラメータとして構造体を利用しようとすると、必要な入力をすべて提供したにもかかわらず、過剰な引数を示す誤ったメッセージが表示されます。問題の構造体 DataResponse には、Status と Data の 2 つのパラメータが必要です。
コード スニペット:
<code class="go">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) // Error: too many arguments JSON(rw, resp) }</code>
エラー メッセージ:
<code class="text">too many arguments to conversion to DataResponse: DataResponse(200, user)</code>
解決策:
DataResponse 構造体の初期化に使用される構文が正しくありません。正しいアプローチは中括弧を利用することです:
<code class="go">resp := DataResponse{200, user} // Correct syntax with curly braces</code>
中括弧を利用すると、構造体が必要な値で適切に初期化され、コンパイラの問題が解決され、構造体をパラメータとしてシームレスに利用できるようになります。
以上が構造体を関数に渡すときに「引数が多すぎます」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。