Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Susan Sarandonasal
2024-11-23 04:55:10172semak imbas

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)
}

Output:

2 *2*

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:
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