首頁 > 後端開發 > Golang > 主體

為什麼在將結構傳遞給函數時會收到'太多參數”?

Patricia Arquette
發布: 2024-10-31 23:54:28
原創
1043 人瀏覽過

Why am I getting

編譯器問題:使用結構體作為參數時出現過多參數

嘗試使用結構體作為JSON 函數的參數時,出現錯誤訊息,表明儘管提供了所有必要的輸入,但參數過多。相關結構體 DataResponse 需要兩個參數:Status 和 Data。

程式碼片段:

<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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板