Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menambahkan Hujah dengan Cekap pada Pembungkus Fungsi Variadik dalam Go?
Penambahan Cekap pada Pembungkus Fungsi Variadik
Fungsi variadik dalam Go, seperti fmt.Println, membolehkan anda menghantar bilangan argumen yang berubah-ubah . Apabila menggunakan fungsi pembalut untuk tujuan penyahpepijatan, bagaimanapun, menambahkan argumen tambahan boleh membawa kepada isu peruntukan memori.
Dalam contoh yang diberikan, dua percubaan pertama untuk melanjutkan fungsi fmt.Fprintln dengan argumen tambahan mengakibatkan ralat. Kaedah ketiga melibatkan membina kepingan baharu secara manual, yang memperkenalkan overhed.
Untuk mengelakkan pengagihan semula memori, anda boleh menggunakan fungsi tambah:
<code class="go">func Debug(a ...interface{}) { if debug { fmt.Fprintln(out, append([]interface{}{prefix, sep}, a...)...) } }</code>
Pelapis satu ini mengambil kepingan sedia ada hujah (a) dan memanjangkannya dengan item tambahan (awalan dan sep) menggunakan append. Potongan yang terhasil kemudian dihantar ke fmt.Fprintln, memastikan pengembangan hujah yang cekap tanpa memerlukan peruntukan memori yang jelas.
Atas ialah kandungan terperinci Bagaimana untuk Menambahkan Hujah dengan Cekap pada Pembungkus Fungsi Variadik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!