這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
Golang字串格式化
package mainimport "fmt"type point struct { x, y int}func main() { // 格式化整型,使用`%d`是一種 // 標準的以十進位來輸出整型的方式 // 有符號十進位整數(int)(%ld、%Ld:長整型資料(long),%hd:輸出短整形。) fmt.Println("=====%d,輸出十進位====") fmt.Printf("%d\n", 110) //Output: 110 // 輸出整型的二進位表示方式 fmt.Println("=====%b,輸出二進位====") fmt.Printf("%b\n", 110) //Output: 1101110 // 輸出整型數值所對應的字元(char):一個位元組,佔8位 // 可參考 ASCII fmt.Println("=====%c,輸出一個值的字元(char)====") fmt.Printf("%c\n",97) //Output: a // 輸出一個值的十六進位,每個字串的位元組用兩個字元輸出 fmt.Println("=====%x,輸出一個值的十六進位,每個字串的位元組用兩個字元輸出====") fmt.Printf("0x%x\n", 10) fmt.Printf("%x\n", "abc") //Output: 0xa //Output: 616263 // 輸出浮點型數值 fmt.Println("=====%f,輸出浮點型數值====") fmt.Printf("%f\n", 27.89) //Output: 27.890000 // 輸出基本的字串 fmt.Println("=====%s,輸出基底字元串====") fmt.Printf("%s-%s-%s\n","I","am","batu") //Output: I-am-batu // 輸出帶雙引號的字串 fmt.Println("=====%q,輸出帶雙引號的字串====") fmt.Printf("%q\n","string") //Output: "string" // Go提供了幾種列印格式,用來格式化一般的Go值 p := point{1, 2} fmt.Println("=====%p,輸出一個指標的值====") fmt.Printf("%p\n", &p) //Output: 0xc042004390 fmt.Println("=====%v,輸出結構體的對象值====") fmt.Printf("%v\n", p) //Output: {1 2} // 如果所格式化的值是一個結構體對象,那麼`%+v`的格式化輸出 fmt.Println("=====%+v,輸出結構體的成員名稱和值====") fmt.Printf("%+v\n", p) //Output: {x:1 y:2} fmt.Println("=====%#v,輸出一個值的Go文法表示方式====") fmt.Printf("%#v\n",p) //Output: main.point{x:1, y:2} fmt.Println("=====%T,輸出一個值的資料類型====") fmt.Printf("%T\n",p) //Output: main.point // 當輸出數位時候,經常需要去控制輸出的寬度和精度。 // 可以使用一個位於%後面的數字來控制輸出的寬度,預設情況下輸出是靠右對齊的,左邊加上空格 fmt.Println("=====控制輸出的寬度和精度====") fmt.Printf("|%5d|%5d|\n", 12, 345) //Output: | 12| 345| fmt.Println("=====輸出寬度,同時指定浮點數====") fmt.Printf("|%5.2f|%5.2f|\n", 1.2, 3.456) //Output: | 1.20| 3.46| fmt.Println("=====靠左對齊====") fmt.Printf("|%-5.2f|%-5.2f|\n", 1.2, 3.45) //Output: |1.20 |3.45 |}