Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menggantikan Semua Pembolehubah dalam fmt.Sprintf() dengan Nilai Yang Sama?
Ganti Pembolehubah Individu dalam Sprintf dengan Nilai Yang Sama
Dalam fmt.Sprintf(), indeks argumen boleh dinyatakan secara eksplisit menggunakan tatatanda [n ], membenarkan pembolehubah berbeza digantikan pada kedudukan berbeza dalam rentetan yang diformatkan. Walau bagaimanapun, menggunakan pendekatan ini untuk menggantikan semua pembolehubah dengan nilai yang sama memerlukan sedikit pengubahsuaian pada rentetan format.
Penyelesaian:
Daripada bergantung pada hujah berturut-turut, gunakan indeks argumen berkurung sebelum setiap kata kerja pemformatan untuk menunjukkan bahawa argumen yang sama harus digunakan:
val := "foo" s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
Rentetan format ini menentukan bahawa indeks argumen 1 harus digunakan untuk ketiga-tiga kata kerja pemformatan, menghasilkan:
"foo in foo is foo"
Pilihan Ringkas:
Indeks argumen eksplisit pertama boleh ditinggalkan, kerana ia lalai kepada 1:
fmt.Printf("%v in %[1]v is %[1]v", "foo")
Selain itu, kurungan dan hujah indeks boleh digabungkan menjadi satu rentetan:
fmt.Printf("%v in %1v is %1v", "foo")
Kesimpulan:
Dengan menggunakan indeks hujah eksplisit, adalah mungkin untuk menggantikan semua pembolehubah dalam fmt.Sprintf( ) dengan nilai yang sama, memberikan lebih fleksibiliti dalam memformat rentetan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Semua Pembolehubah dalam fmt.Sprintf() dengan Nilai Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!