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!