Rumah > pembangunan bahagian belakang > Golang > Mengapa saya mendapat \'terlalu banyak argumen\' apabila menghantar struct kepada fungsi?

Mengapa saya mendapat \'terlalu banyak argumen\' apabila menghantar struct kepada fungsi?

Patricia Arquette
Lepaskan: 2024-10-31 23:54:28
asal
1086 orang telah melayarinya

Why am I getting

Isu Pengkompil: Lebihan Argumen Semasa Menggunakan Struct Sebagai Parameter

Apabila cuba menggunakan struct sebagai parameter untuk fungsi JSON, mesej yang salah muncul, menunjukkan hujah yang berlebihan walaupun menyediakan semua input yang diperlukan. Struktur yang dimaksudkan, DataResponse, memerlukan dua parameter: Status dan Data.

Coretan Kod:

<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>
Salin selepas log masuk

Mesej Ralat:

<code class="text">too many arguments to conversion to DataResponse: DataResponse(200, user)</code>
Salin selepas log masuk

Penyelesaian:

Sintaks yang digunakan untuk memulakan struct DataResponse adalah tidak betul. Pendekatan yang betul ialah menggunakan pendakap kerinting:

<code class="go">resp := DataResponse{200, user} // Correct syntax with curly braces</code>
Salin selepas log masuk

Dengan menggunakan pendakap kerinting, struct dimulakan dengan betul dengan nilai yang diperlukan dan isu pengkompil diselesaikan, membolehkan penggunaan struct yang lancar sebagai parameter.

Atas ialah kandungan terperinci Mengapa saya mendapat \'terlalu banyak argumen\' apabila menghantar struct kepada fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan