Rumah > pembangunan bahagian belakang > Golang > Ralat Golang: 'hujah hilang ke...' Bagaimana untuk menyelesaikannya?

Ralat Golang: 'hujah hilang ke...' Bagaimana untuk menyelesaikannya?

王林
Lepaskan: 2023-06-24 16:39:37
asal
1541 orang telah melayarinya

Baru-baru ini, semasa membangunkan menggunakan bahasa Go, saya menghadapi masalah biasa, iaitu ralat "hujah yang hilang untuk...". Ralat jenis ini biasanya bermakna kami tidak menghantar parameter lengkap ke fungsi semasa memanggil fungsi, atau parameter hilang apabila fungsi ditakrifkan. Masalah ini kelihatan sangat mudah, tetapi ia boleh menyebabkan banyak masalah untuk pengaturcara. Artikel ini akan menerangkan cara menangani ralat jenis ini dan cara menyelesaikan masalah tersebut.

Mula-mula, mari kita lihat laporan ralat ini. Masalah ini berlaku apabila kita tidak lulus parameter yang mencukupi semasa memanggil fungsi, atau terdapat parameter yang hilang apabila fungsi ditakrifkan. Contohnya, kod contoh berikut:

package main

import "fmt"

func main() {
    greet("John")
}

func greet(name string, age int) {
    fmt.Printf("Hello, %s! You are %d years old.
", name, age)
}
Salin selepas log masuk
Salin selepas log masuk

Kod ini akan melaporkan ralat: "argumen hilang untuk memanggil salam kerana fungsi "salam" memerlukan dua parameter (jenis rentetan dan integer), tetapi hanya satu yang diluluskan apabila parameter panggilan.

Jadi, bagaimana untuk menyelesaikan masalah ini? Kita harus terlebih dahulu menyemak definisi fungsi dan parameter panggilan fungsi. Jika terdapat parameter yang tidak mencukupi apabila fungsi ditakrifkan, kita hanya perlu melengkapkan parameter yang hilang. Sebagai contoh, kami boleh mengubah suai kod sampel di atas seperti berikut:

package main

import "fmt"

func main() {
    greet("John", 25)
}

func greet(name string, age int) {
    fmt.Printf("Hello, %s! You are %d years old.
", name, age)
}
Salin selepas log masuk
Salin selepas log masuk

Di sini, kami mengubah suai takrif fungsi salam untuk menerima dua parameter (rentetan nama dan int umur), dan mengubah suai nombor dan jenis parameter yang diluluskan semasa memanggil fungsi , supaya Mengelakkan ralat pelaporan.

Jika parameter tidak mencukupi semasa memanggil fungsi, kita perlu mencari parameter yang hilang dan luluskannya. Contohnya, kod sampel berikut:

package main

import "fmt"

func main() {
    greet("John")
}

func greet(name string, age int) {
    fmt.Printf("Hello, %s! You are %d years old.
", name, age)
}
Salin selepas log masuk
Salin selepas log masuk

Di sini, kami hanya lulus satu nama parameter jenis rentetan, menyebabkan parameter tidak mencukupi semasa memanggil fungsi. Kita perlu menambah parameter umur integer, seperti yang ditunjukkan di bawah:

package main

import "fmt"

func main() {
    greet("John", 25)
}

func greet(name string, age int) {
    fmt.Printf("Hello, %s! You are %d years old.
", name, age)
}
Salin selepas log masuk
Salin selepas log masuk

Dengan cara ini, kita boleh memastikan bahawa parameter yang mencukupi diluluskan apabila fungsi dipanggil dan mengelakkan ralat "hujah hilang ke...".

Untuk meringkaskan, untuk menyelesaikan ralat "argumen yang hilang ke...", kita perlu menyemak sama ada nombor dan jenis parameter dalam definisi fungsi dan panggilan fungsi adalah konsisten. Jika terdapat parameter yang tidak mencukupi apabila fungsi ditakrifkan, kita perlu menambah parameter yang hilang jika terdapat parameter yang tidak mencukupi apabila fungsi dipanggil, kita perlu menambah parameter yang hilang untuk memastikan bahawa parameter yang mencukupi diluluskan apabila fungsi dipanggil. Jika kita menyemak isu ini dengan teliti, kita boleh mengelakkan ralat yang mudah tetapi mengelirukan ini.

Atas ialah kandungan terperinci Ralat Golang: 'hujah hilang ke...' Bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan