Mengelakkan Terlalu Bergantung pada %v untuk Mencetak Pembolehubah
Manakala %v menawarkan cara yang serba boleh untuk mencetak kedua-dua integer (%d) dan rentetan ( %s), menggunakannya secara eksklusif mungkin tidak disengajakan akibatnya.
Pemformatan Nilai Lalai lwn. Pemformatan Jenis Tepat
%d secara eksplisit mengarahkan pakej fmt untuk mencetak integer dalam asas 10. Sebaliknya, %v bergantung pada kaedah pemformatan lalai, yang boleh berbeza-beza berdasarkan jenisnya dicetak.
Timpa Pelaksanaan Antara Muka Stringer
Jika objek melaksanakan antara muka fmt.Stringer dan menyediakan kaedah String() tersuai, %v akan mengutamakan kaedah itu berbanding pemformatan lalai. Ini boleh membawa kepada hasil yang tidak dijangka jika anda berhasrat untuk mencetak integer sebagai nombor dan bukan sebagai rentetan tersuai perwakilan.
Contoh:
type MyInt int func (mi MyInt) String() string { return fmt.Sprintf("*%d*", int(mi)) } func main() { mi := MyInt(2) fmt.Printf("%d %v", mi, mi) }
Output:
2 *2*
Cadangan:
Atas ialah kandungan terperinci Bilakah Anda Harus Memilih %d Lebih %v untuk Mencetak Pembolehubah dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!