首頁  >  文章  >  後端開發  >  為什麼在將結構傳遞給函數時會收到“太多參數”?

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

Patricia Arquette
Patricia Arquette原創
2024-10-31 23:54:28962瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn