避免過度依賴 %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*
建議:
以上是在 Go 中何時應該選擇 %d 而不是 %v 來列印變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!