使用%v 列印不同的資料型別
常常會遇到需要列印整數(%d)和使用printf 的字串( %s)。人們可能想知道是否可以對這兩種類型使用 %v。雖然可以接受,但隨意使用 %v 可能會導致意外結果。
%v 的預設格式
fmt.Printf("%v") 是一個泛型使用「預設」格式列印值的佔位符,可以透過指定格式標誌來覆寫該格式。對於整數,%v 預設為基數 10 (%d) 格式。但是,對於非基本類型,%v 會回退到 fmt.Stringer 介面。
考慮以下範例:
type MyInt int func (mi MyInt) String() string { return fmt.Sprint("*", int(mi), "*") } func main() { var mi MyInt = 2 fmt.Printf("%d %v", mi, mi) }
輸出:
2 *2*
In在這種情況下,%v 遵循MyInt 中String() 方法的實作並列印“2”,覆蓋預設的整數格式。
注意事項
對整數和字串使用 %v 從技術上來說並沒有錯。但是,它可能會導致並非在所有情況下都理想的格式。建議使用明確格式說明符(%d 表示整數,%s 表示字串)以確保格式一致且可預測。
以上是%v 可以在 Go 的 `fmt.Printf` 中列印整數和字串嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!