Rumah > pembangunan bahagian belakang > Golang > Bilakah Anda Harus Memilih %d Lebih %v untuk Mencetak Pembolehubah dalam Go?

Bilakah Anda Harus Memilih %d Lebih %v untuk Mencetak Pembolehubah dalam Go?

Susan Sarandon
Lepaskan: 2024-11-23 04:55:10
asal
277 orang telah melayarinya

When Should You Choose %d Over %v for Printing Variables in Go?

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)
}
Salin selepas log masuk

Output:

2 *2*
Salin selepas log masuk

Cadangan:

  • Gunakan %d khusus untuk integer untuk memastikan perwakilan angka yang tepat.
  • Gunakan %v apabila mencetak objek yang dijangkakan perwakilan rentetan tersuai.
  • Elakkan bergantung semata-mata pada %v untuk mengekalkan ketepatan dan kebolehbacaan dalam kod anda.

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!

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