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,兩個數值之間自動加空格,每項之間自動加空格 

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之前有一個空格

2、以下為printf方法的格式說明:

printf 格式化輸出

定義變量示例

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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM