Menggunakan Sprintf dengan Penggantian Nilai Sama
Dalam Sprintf, keupayaan untuk menggantikan semua pembolehubah dalam rentetan yang diformat dengan nilai yang sama adalah mungkin tetapi memerlukan pengubahsuaian rentetan format.
Argumen Eksplisit Indeks
Kuncinya ialah menggunakan indeks hujah eksplisit sebelum setiap kata kerja pemformatan. Ini membolehkan anda menentukan hujah yang harus digunakan untuk penggantian tertentu itu. Dalam Printf, Sprintf dan Fprintf, tingkah laku lalai adalah menggunakan hujah yang diluluskan secara berurutan. Walau bagaimanapun, indeks hujah eksplisit, dilambangkan dengan [n], membolehkan anda memilih indeks hujah tertentu.
Contoh
Pertimbangkan contoh berikut:
val := "foo" s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val) fmt.Println(s)
Di sini, kami menggunakan indeks argumen eksplisit [1] sebelum setiap kata kerja pemformatan. Ini mengarahkan Sprintf untuk menggunakan hujah pertama, iaitu, val, untuk ketiga-tiga penggantian. Hasilnya, output akan menjadi:
foo in foo is foo
Pemudahan Baris Tunggal
Contoh di atas boleh dipermudahkan kepada satu baris:
fmt.Printf("%[1]v in %[1]v is %[1]v", "foo")
Mengabaikan Indeks Pertama
Selain itu, anda boleh tinggalkan indeks argumen eksplisit pertama, kerana ia secara automatik lalai kepada 1:
fmt.Printf("%v in %[1]v is %[1]v", "foo")
Dengan memahami indeks argumen eksplisit, anda boleh menentukan nilai yang sama untuk berbilang penggantian dalam Sprintf, tanpa mengira bilangan penentu format.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Semua Pembolehubah dalam Rentetan Go Sprintf dengan Nilai yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!