Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menguatkuasakan Pematuhan Parameter dalam Fungsi Variadik Go?

Bagaimanakah Saya Boleh Menguatkuasakan Pematuhan Parameter dalam Fungsi Variadik Go?

Mary-Kate Olsen
Lepaskan: 2024-12-07 19:12:14
asal
635 orang telah melayarinya

How Can I Enforce Parameter Compliance in Go's Variadic Functions?

Menguatkuasakan Pematuhan Parameter dengan Fungsi Variadik dalam Go

Walaupun bahasa Go membenarkan penggunaan fungsi variadik tanpa parameter yang disediakan, adalah wajar untuk mengelakkan senario sedemikian, menganggap mereka sebagai pepijat yang berpotensi dalam kod pemanggil. Walau bagaimanapun, mencapai ini sebagai ralat masa kompilasi tidak disokong secara langsung oleh bahasa.

Penyelesaian: Mengubah Suai Tandatangan Fungsi

Untuk mengatasi had ini, anda boleh mengubah suai tandatangan fungsi anda untuk disertakan kedua-dua parameter bukan variadik dan variadik. Pendekatan ini memastikan bahawa sekurang-kurangnya satu parameter disediakan semasa pemanggilan fungsi. Contohnya:

func min(first int, rest ...int) int {
    // Implement your logic here
    return 0
}
Salin selepas log masuk

Contoh Penggunaan

Dengan tandatangan ini, fungsi min boleh dipanggil seperti berikut:

min(1) // Valid
min(1, 2) // Valid
min(1, 2, -3) // Valid
Salin selepas log masuk

Walau bagaimanapun, cuba memanggil fungsi tanpa sebarang argumen mengakibatkan ralat masa kompilasi:

min() // Error: not enough arguments in call to min
Salin selepas log masuk

Mengendalikan Fungsi dengan Dua Variadik Parameter

Jika anda memerlukan sekurang-kurangnya dua hujah untuk disediakan, tandatangan fungsi boleh diubah suai selanjutnya:

func min(first, second int, rest ...int) int {
    // Implement your logic here
    return 0
}
Salin selepas log masuk

Pertimbangan Tambahan

Walaupun teknik ini berkesan menguatkuasakan peruntukan daripada sekurang-kurangnya satu parameter, adalah penting untuk menimbang pertukaran. Khususnya, pengendalian fungsi dengan kepingan yang telah ditetapkan boleh memperkenalkan langkah tambahan dalam kod panggilan, seperti yang ditunjukkan di bawah:

s := []int{1, 2, -3}
fmt.Println(min(s[0], s[1:]...))
Salin selepas log masuk

Pendekatan Alternatif

Jika mengubah suai tandatangan fungsi tidak dapat dilaksanakan, panik masa jalan atau mekanisme keluar boleh digunakan untuk mengendalikan kes di mana tiada parameter disediakan. Walau bagaimanapun, pendekatan ini tidak dapat menghalang penyusunan dan bergantung pada pengendalian yang betul pada peringkat pelaksanaan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menguatkuasakan Pematuhan Parameter dalam Fungsi Variadik Go?. 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