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

Patricia Arquette
Lepaskan: 2024-11-06 12:10:02
asal
201 orang telah melayarinya

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>
Salin selepas log masuk

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!

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