Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menghantar Slice Rentetan kepada Parameter Variadik Antara Muka Kosong dalam Go?

Bagaimana untuk Menghantar Slice Rentetan kepada Parameter Variadik Antara Muka Kosong dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-06 12:10:02246semak imbas

How to Pass a String Slice to an Empty Interface Variadic Parameter in Go?

Lepaskan Keratan Rentetan ke Parameter Variadik Antara Muka Kosong

Soalan:

Gosqlite pakej menyediakan kaedah dengan parameter variadic jenis antara muka kosong. Walau bagaimanapun, apabila cuba menghantar sekeping rentetan sebagai parameter, pengkompil menjana ralat. Adakah terdapat cara untuk melakukan ini, atau kaedah yang lebih cekap untuk menukar hirisan kepada antara muka kosong?

Jawapan:

Tidak mungkin untuk menghantar terus [ ]rentetan kepada parameter ...antara muka{}. Penukaran memerlukan masa linear, yang boleh memperkenalkan kos tersembunyi yang ketara.

Sebaliknya, anda boleh mencipta fungsi berasingan yang mengambil []rentetan dan mengembalikan []antara muka{} yang sepadan. Sebagai alternatif, anda boleh menggunakan refleksi, walaupun ini disertakan dengan overhed masa jalan. Berikut ialah contoh menggunakan refleksi:

<code class="go">valuesVal := reflect.ValueOf(values)
for i := range values2 { values2[i] = valuesVal.Index(i).Interface() } </code>

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Slice Rentetan kepada Parameter Variadik Antara Muka Kosong dalam Go?. 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
Artikel sebelumnya:Enjin carian anda, ZensearchArtikel seterusnya:Enjin carian anda, Zensearch