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) }
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) }
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) }
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) }
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!