Dalam Go, fungsi dengan parameter variadic boleh menerima sifar atau lebih argumen. Walaupun ia sah untuk memanggil fungsi sedemikian tanpa memberikan sebarang hujah, ia mungkin tidak selalu diingini.
Pertimbangkan contoh fungsi min() yang mengira nilai minimum daripada set input. Adalah penting bahawa sekurang-kurangnya satu parameter disediakan kepada fungsi ini agar ia berfungsi dengan betul.
Memandangkan memanggil fungsi variadic tanpa argumen dibenarkan oleh spesifikasi bahasa, tidak mungkin untuk mencetuskan ralat masa kompilasi secara langsung menggunakan fungsi variadik.
Walau bagaimanapun, a penyelesaian adalah untuk mengubah suai tandatangan fungsi untuk memasukkan kedua-dua parameter bukan variadik dan variadik. Ini memastikan bahawa pemanggil mesti memberikan sekurang-kurangnya satu hujah:
func min(first int, rest ...int) int { // Implementation to find the minimum value }
Dengan tandatangan ini, memanggil fungsi min() tanpa sebarang argumen mengakibatkan ralat masa kompilasi:
min() // Error: not enough arguments in call to min
Jika mengubah suai tandatangan fungsi tidak dapat dilaksanakan, satu-satunya alternatif ialah menyemak kehadiran argumen semasa masa jalan. Sekiranya bilangan hujah yang tidak mencukupi, anda boleh panik atau keluar dari aplikasi. Walau bagaimanapun, pendekatan ini tidak boleh mencetuskan ralat masa kompilasi.
Atas ialah kandungan terperinci Bolehkah Perpustakaan Tersuai Go Memaksa Ralat Masa Kompilasi untuk Argumen Fungsi Tidak Mencukupi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!