Mencampurkan Kepingan "Meletup" dan Parameter Biasa dalam Fungsi Variadik
Dalam Go, fungsi variadik membenarkan bilangan argumen yang sewenang-wenangnya. Walau bagaimanapun, adalah tidak mungkin untuk menggabungkan kedua-dua elemen terhitung dan kepingan sedia ada apabila menentukan argumen.
Sintaks Argumen Variadik
Nilai yang dihantar kepada parameter variadik boleh sama ada ditentukan melalui:
Mencampurkan Elemen Terhitung dan Kepingan
Kod berikut tidak akan disusun:
func main() { stuff := []string{"baz", "bla"} foo("bar", stuff...) // compile error: too many arguments } func foo(s ...string) {}
Ini kerana Go tidak membenarkan mencampurkan dua sintaks. Apabila menyenaraikan elemen individu, kepingan baharu dibuat. Apabila menggunakan kepingan sedia ada, kepingan yang sama digunakan sebagai parameter variadik.
Sebab Pengehadan
Penghadan adalah disebabkan oleh cara Go memproses argumen variadik. Apabila menghitung elemen, kepingan baharu dicipta untuk menyimpan nilai. Walau bagaimanapun, jika kepingan sedia ada diluluskan, tiada kepingan baharu dibuat. Sebaliknya, kepingan yang diluluskan diperuntukkan terus kepada parameter variadic. Mencampurkan kedua-duanya memerlukan peruntukkan kepingan baharu, yang tidak disokong pada masa ini.
Atas ialah kandungan terperinci Bolehkah Go Variadic Functions Mencampurkan Hujah Terhitung dan Hirisan Sedia Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!