首頁 > 後端開發 > Golang > %v 可以在 Go 的 `fmt.Printf` 中列印整數和字串嗎?

%v 可以在 Go 的 `fmt.Printf` 中列印整數和字串嗎?

Susan Sarandon
發布: 2024-11-14 09:32:02
原創
1060 人瀏覽過

Can %v Print Both Integers and Strings in Go's `fmt.Printf`?

使用%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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板