首頁  >  文章  >  後端開發  >  在 Go 中何時應該選擇 %d 而不是 %v 來列印變數?

在 Go 中何時應該選擇 %d 而不是 %v 來列印變數?

Susan Sarandon
Susan Sarandon原創
2024-11-23 04:55:10170瀏覽

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

避免過度依賴 %v 來列印變數

雖然 %v 提供了一種列印整數 (%d) 和字串 (%d) 和字串 ( %s),單獨使用它可能會產生意想不到的效果

預設值格式與精確型別格式

%d 明確指示fmt 包列印以10 為基數的整數。相反,%v 依賴預設格式化方法,根據列印類型的不同而有所不同。

Stringer 介面實作覆寫

如果物件實作 fmt.Stringer 介面並提供自訂 String() 方法,%v 會優先考慮該方法而不是預設格式。如果您打算將整數列印為數字而不是自訂字串,這可能會導致意外結果

範例:

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

輸出:

2 *2*

建議:

  • 使用 %d專門用於整數,以確保準確的數字表示。
  • 在列印需要自訂字串表示的物件時使用 %v。
  • 避免只依賴 %v 來維持程式碼的精確度和可讀性。

以上是在 Go 中何時應該選擇 %d 而不是 %v 來列印變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn