Bagaimana untuk Menambahkan Hujah dengan Cekap pada Pembungkus Fungsi Variadik dalam Go?

Patricia Arquette
Lepaskan: 2024-11-02 01:29:02
asal
451 orang telah melayarinya

How to Efficiently Append Arguments to a Variadic Function Wrapper in 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>
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!