Golang 格式化輸出使用"fmt"包。
Print 和 Printf
不自動(dòng)插入空格,不自動(dòng)換行Fprint 和 Fprintf
不自動(dòng)插入空格,不自動(dòng)換行Sprint 和 Sprintf
不輸出,只返回字符串
注意:Sprintf轉(zhuǎn)換字符串(%s)時(shí),可能隱式調(diào)用String()方法,可能出現(xiàn)循環(huán)調(diào)用
type MyString string
func (m MyString) String() string {
return fmt.Sprintf("MyString=%s", m) // Error: 一致循環(huán)調(diào)用
}
可改為:
type MyString string
func (m MyString) String() string {
return fmt.Sprintf("MyString=%s", string(m)) // OK: 先轉(zhuǎn)換類型
}
- Println
多個(gè)參數(shù)間自動(dòng)插入空格
自動(dòng)換行
//以下輸出等效
fmt.Print("Hello ", 23, "\n")
fmt.Printf("Hello %d\n", 23)
fmt.Print(fmt.Sprint("Hello ", 23, "\n"))
fmt.Print(fmt.Sprintf("Hello %d\n", 23))
fmt.Fprint(os.Stdout, "Hello ", 23, "\n")
fmt.Fprintf(os.Stdout, "Hello %d\n", 23)
fmt.Println("Hello", 23)