Rumah >pembangunan bahagian belakang >Golang >Bolehkah Go Variadic Functions Mencampurkan Hujah dan Hirisan Terbilang?

Bolehkah Go Variadic Functions Mencampurkan Hujah dan Hirisan Terbilang?

Susan Sarandon
Susan Sarandonasal
2024-12-09 19:45:26640semak imbas

Can Go Variadic Functions Mix Enumerated Arguments and Slices?

Ketakserasian dalam Argumen Fungsi Variadik

Dalam Go, argumen fungsi variadic menyediakan cara yang mudah untuk menentukan parameter yang menerima bilangan argumen yang berubah-ubah. Walau bagaimanapun, terdapat sekatan tertentu apabila mencampurkan kepingan "meletup" dengan parameter biasa dalam fungsi variadik.

Had asasnya ialah hujah variadik mesti sama ada dinyatakan secara eksplisit atau diluluskan sebagai kepingan, tetapi bukan kedua-duanya. Apabila hirisan digunakan (...bahan), ia dihantar terus sebagai nilai parameter variadik tanpa membuat kepingan baharu. Sebaliknya, menyenaraikan elemen (cth., "bar", bahan...) menghasilkan hirisan baharu dengan hujah yang disediakan.

Pengkompil melarang mencampurkan kedua-dua bentuk ini kerana ia memerlukan peruntukan daripada kepingan baharu, yang tidak disokong oleh spesifikasi bahasa Go. Ralat "terlalu banyak hujah dalam panggilan ke foo" menunjukkan bahawa tandatangan fungsi menjangkakan satu parameter variadik, yang tidak boleh dipenuhi oleh kedua-dua elemen terhitung dan sekeping.

Penghadan ini memastikan bahawa parameter variadik menerima sama ada potong secara langsung atau kepingan yang baru dibuat dengan unsur-unsur yang disenaraikan. Ia menghalang kemungkinan kekeliruan dan ketidakkonsistenan dalam pengendalian hujah variadic.

Dalam bahasa seperti Ruby, sintaks *foo membenarkan pengembangan tatasusunan sedia ada menjadi parameter variadic. Walau bagaimanapun, dalam Go, ini tidak boleh dilakukan kerana pemisahan yang ketat antara elemen terhitung dan hirisan dalam hujah variadic.

Atas ialah kandungan terperinci Bolehkah Go Variadic Functions Mencampurkan Hujah dan Hirisan Terbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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