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
218 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!

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