認識 Go 格式化字符串

普通占位符

占位符 說明 範例 結果
%v 輸出值的預設格式 Printf(“%v”, color) {white}
%+v 輸出結構時,帶有鍵名 Printf(“%+v”, color) {name:white}
%#v 輸出值的 Go 語法表示 Printf(“#v”, color) main.Color{name:”white”}
%T 輸出值的類型的 Go 語法表示 Printf(“%T”, color) main.Color
%% 輸出百分比 Printf(“%%”) %

布林占位符

占位符 說明 範例 結果
%t 輸出布林值 Printf(“%t”, true) true

整數占位符

占位符 說明 範例 結果
%b 二進位表示 Printf(“%b”, 5) 101
%c 輸出 Unicode 所表示的字符 Printf(“%c”, 0x53F0)
%d 十進位表示 Printf(“%d”, 0x12) 18
%o 八進位表示 Printf(“%o”, 10) 12
%q 輸出單引號圍繞的字符 Printf(“%q”, 0x53F0) ‘台’
%x 十六進位表示,以小寫字母輸出 Printf(“%x”, 13) d
%X 十六進位表示,以大寫字母輸出 Printf(“%x”, 13) D
%U 輸出 Unicode 代碼 Printf(“%U”, 0x4E2D) U+53F0

浮點數占位符

占位符 說明 範例 結果
%e 科學記法,符號以小寫字母輸出 Printf(“%e”, 10.2) 1.020000e+01
%E 科學記法,符號以大寫字母輸出 Printf(“%E”, 10.2) 1.020000E+01

字串占位符

占位符 說明 範例 結果
%s 輸出字符串(string 或 []byte 類型) Printf(“%s”, []byte(“Go”)) Go
%q 輸出雙引號圍繞的字符 Printf(“%q”, “Go”) “Go”
%x 十六進位表示,以小寫字母輸出 Printf(“%x”, “Go”) 476f
%X 十六進位表示,以大寫字母輸出 Printf(“%X”, “Go”) 476F

指針占位符

占位符 說明 範例 結果
%p 十六進位表示 Printf(“%p”, &color) 0xc0000a8030

參考資料