Go語言fmt包詳解

格式化輸出函數

 fmt包含有格式化I/O函數,相似於C語言的printf和scanf。格式字符串的規則來源於C,但更簡單一些安全

1.print和println方法

print輸出給定的字符串,若是是數值或字符,則輸出對應的十進制表示函數

fmt.Print("a", "\n")      //輸出a  
fmt.Print("a", "b", "\n") //輸出ab  
fmt.Print('a', "\n")      //輸出97  
fmt.Print('a', 'b', "\n") //輸出97 98   字符之間會輸出一個空格  
fmt.Print(12, "\n")       //輸出12  
fmt.Print(12, 13, "\n")   //輸出12 13   數值之間輸出一個空格

Println 自動在結尾輸出\n,兩個數值之間自動加空格,每項之間自動加空格 spa

fmt.Println("---------------------------------")  
fmt.Println("a")          //輸出a  
fmt.Println("a", "b")     //輸出a b  
fmt.Println('a')          //輸出97  
fmt.Println('a', 'b')     //輸出97 98  
fmt.Println(12)           //輸出12  
fmt.Println(12, 13)       //輸出12 13  
fmt.Println("\n", 12, 13) //輸出 12 13   12以前有一個空格

二、如下爲printf方法的格式說明:指針

printf 格式化輸出code

定義變量示例blog

type Human struct { Name string } var people = Human{Name:"春生"}

普通佔位符

佔位符     
說明
舉例
輸出
%v
 相應值的默認格式
fmt.Printf("%v", name)
{春生}
%+v 
打印結構體時,會添加字段名
fmt.Printf("%+v", people)
main.Human{Name:"zhangsan"}
%#v 
相應值的Go語法表示
fmt.Printf("%#v",people)
main.Human{Name:"春生"}
%T
相應值的類型的Go語法表示
fmt.Printf("%T",people)
main.Human
%%
字面上的百分號
fmt.Printf("%%")
%

布爾佔位符

佔位符
說明 舉例 輸出
%t 
true  false
fmt.Printf("%t",true)
true

整數佔位符

佔位符 說明 舉例 輸出
%b 
二進制表示
fmt.Printf("%b", 5)
   101
%c
 相應Unicode碼點所表示的字符
fmt.Printf("%c", 0x4E2D)
%d
十進制表示
fmt.Printf("%d", 0x12)
18
%o
 八進制表示
fmt.Printf("%d", 10)
12
%q 
單引號圍繞的字符字面值,由Go語法安全地轉義
fmt.Printf("%q", 0x4E2D)
   '中'
   %x  十六進制表示,字母形式爲小寫 a-
fmt.Printf("%x", 13)
    d

   %X字符串

   十六進制表示,字母形式爲大寫 A-F
fmt.Printf("%x", 13)
   D
   %  Unicode格式:U+1234,等同於 "U+%04X"
fmt.Printf("%U", 0x4E2D)
 U+4E2D

浮點數和複數的組成部分(實部和虛部)

 

佔位符 說明 舉例
%e (=%.6e) 6位小數點
科學計數法,例如 -1234.456e+78
fmt.Printf("%e", 10.2)
%E 科學計數法,例如 -1234.456E+78 fmt.Printf("%e", 10.2)
%f (=%.6f) 6位小數點
有小數點而無指數,例如 123.456
fmt.Printf("%f", 10.2)
%g 根據狀況選擇 %e 或 %f 以產生更緊湊的(無末尾的0)輸出 fmt.Printf("%g", 10.20)
%G 根據狀況選擇 %E 或 %f 以產生更緊湊的(無末尾的0)輸出 fmt.Printf("%G", 10.20+2i)

 字符串與字節切片

佔位符 說明 舉例
%s 輸出字符串表示(string類型或[]byte) fmt.Printf("%s", []byte("oldboy"))
%10s 輸出字符串最小寬度爲10(右對齊) fmt.Printf("%10s", "oldboy")
%-10s 輸出字符串最小寬度爲10(左對齊) fmt.Printf("%-10s", "oldboy")
%.5s 輸出字符串最大寬度爲5 fmt.Printf("%.5s", "oldboy")
%5.10s 輸出字符串最小寬度爲5,最大寬度爲10 fmt.Printf("%5.10s", "oldboy")
%-5.10s 輸出字符串最小寬度爲5,最大寬度爲10(左對齊) fmt.Printf("%-5.10s", "oldboy")
%5.3s 輸出字符串寬度爲5,若是原字符串寬度大於3,則截斷 fmt.Printf("%5.3s", "oldboy")
%010s 若是寬度小於10,就會在字符串前面補零 fmt.Printf("%010s", "oldboy")
%q 雙引號圍繞的字符串,由Go語法安全地轉義 fmt.Printf("%q", "oldboy")
%x 十六進制,小寫字母,每字節兩個字符 fmt.Printf("%x", "oldboy")
%X 十六進制,大寫字母,每字節兩個字符 fmt.Printf("%X", "oldboy")

指針

佔位符 說明 舉例
%p 十六進制表示,前綴 0x fmt.Printf("%p", &site)
%#p 不帶前綴 0x fmt.Printf("%#p", &site)
相關文章
相關標籤/搜索