Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Melewati Berbilang Parameter Pembolehubah kepada Sprintf dalam Go?

Bagaimanakah Saya Boleh Melewati Berbilang Parameter Pembolehubah kepada Sprintf dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-10-29 11:40:30
asal
886 orang telah melayarinya

How Can I Pass Multiple Variable Parameters to Sprintf in Go?

Melalui Parameter Pembolehubah ke Sprintf dalam Go

Untuk mengelakkan tugas yang membosankan untuk menentukan setiap pembolehubah secara individu dalam fungsi Sprintf, seseorang boleh memanfaatkan teknik yang membolehkan untuk menghantar berbilang parameter sebagai satu entiti. Pendekatan ini menangani senario di mana sejumlah besar parameter diperlukan, seperti yang digambarkan dalam soalan.

Kunci kepada teknik ini terletak pada mengisytiharkan hirisan v sebagai []antara muka{} dan bukannya []rentetan. Fungsi Sprintf menjangkakan hujahnya daripada jenis []antara muka{}, seperti yang ditunjukkan dalam tandatangannya:

<code class="go">func Printf(format string, a ...interface{}) (n int, err error)</code>
Salin selepas log masuk

Dengan menukar v kepada []antara muka{}, ia sejajar dengan jangkaan fungsi:

<code class="go">s := []interface{}{"a", "b", "c", "d"}
fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3])

v := s[1:]
fmt.Printf("%5s %4s %3s\n", v...)</code>
Salin selepas log masuk

Pendekatan ini menjana output yang diingini tanpa "tidak boleh menggunakan v (taip []rentetan) sebagai jenis []antara muka {} dalam argumen kepada ralat fmt.Printf".

Sementara [] antara muka{} dan []rentetan tidak boleh ditukar, adalah mungkin untuk menukar []rentetan kepada []antara muka{} secara manual jika perlu:

<code class="go">ss := []string{"a", "b", "c"}
is := make([]interface{}, len(ss))
for i, v := range ss {
    is[i] = v
}</code>
Salin selepas log masuk

Dengan mengikuti teknik ini, pembangun boleh lulus parameter pembolehubah dengan mudah kepada Sprintf, menjadikan kod mereka lebih cekap dan mengurangkan boilerplate yang dikaitkan dengan menentukan pembolehubah individu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Berbilang Parameter Pembolehubah kepada Sprintf 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