golang fmt.Printf格式串用法
int
var v int = 13
fmt | output | description |
---|---|---|
%T | [int] | The type of the value |
%v | [13] | Default format |
%+v | [13] | %v plus field names |
%#v | [13] | Go-syntax format |
%d | [13] | description |
%+d | [+13] | 显示符号 |
%4d | [ 13] | 固定宽度,前面补空格 |
%-4d | [13 ] | 固定宽度,后面补空格 |
%04d | [0013] | 固定宽度,前面0 |
%b | [1101] | 二进制 |
%o | [15] | 八进制 |
%x | [d] | 16进制,小写abcdef |
%X | [D] | 16进制,大小ABCDEF |
%#x | [0xd] | 16进制,小写abcdef,带前缀0x |
%#X | [0XD] | 16进制,大小ABCDEF,带前缀0X |
float
var v float64 = 123.456
fmt | output | description |
---|---|---|
%T | [float64] | 同上 |
%v | [123.456] | 同上 |
%+v | [123.456] | 同上 |
%#v | [123.456] | 同上 |
%e | [1.234560e+02] | 科学表示 |
%f | [123.456000] | 一般用法 |
%.2f | [123.46] | 固定小数位 |
%10.2f | [ 123.46] | 固定长度,前面补空格 |
%10.4f | [ 123.4560] | 固定长度,前面补空格 |
%-10.2f | [123.46 ] | 固定长度,后面补空格 |
%-10.4f | [123.4560 ] | 固定长度,后面补空格 |
%g | [123.456] | %f去掉不必要的0 |
%10g | [ 123.456] | %g,前面补空格 |
%-10g | [123.456 ] | %g,后面补空格 |
%010g | [000123.456] | %g,前面补0 |
string
var v string = "ABCD"
fmt | output | description |
---|---|---|
%T | [string] | 同上 |
%v | [ABCD] | 同上 |
%+v | [ABCD] | 同上 |
%#v | ["ABCD"] | 同上 |
%s | [ABCD] | 一般用法 |
%10s | [ ABCD] | 前面补空格 |
%010s | [000000ABCD] | 前面补0 |
%-10s | [ABCD ] | 后面补空格 |
%q | ["ABCD"] | 加引号 |
%x | [41424344] | 打印小写16进制 |
%X | [41424344] | 打印大写16进制 |
% x | [41 42 43 44] | 打印小写16进制,空格分开 |
% X | [41 42 43 44] | 打印大写16禁止,空格分开 |
bool
var v bool = true
fmt | output | description |
---|---|---|
%T | [bool] | 同上 |
%v | [true] | 同上 |
%+v | [true] | 同上 |
%#v | [true] | 同上 |
%t | [true] | 布尔值 |
char
var v rune = 'A'
fmt | output | description |
---|---|---|
%T | [int32] | 同上 |
%v | [65] | 同上 |
%+v | [65] | 同上 |
%#v | [65] | 同上 |
%c | [A] | 字符 |
%q | ['A'] | 引号 |
%U | [U+0041] | UTF-8 |
%#U | [U+0041 'A'] | UTF-8 |
var v byte = 'A'
fmt | output | description |
---|---|---|
%T | [uint8] | 同上 |
%v | [65] | 同上 |
%+v | [65] | 同上 |
%#v | [0x41] | 同上 |
%c | [A] | 字符 |
%q | ['A'] | 引号 |
%U | [U+0041] | UTF-8 |
%#U | [U+0041 'A'] | UTF-8 |
slice
var v []string = []string {"AAAA", "BBBB"}
fmt | output | description |
---|---|---|
%T | [[]string] | description |
%v | [[AAAA BBBB]] | 同上 |
%+v | [[AAAA BBBB]] | 同上 |
%#v | [[]string{"AAAA", "BBBB"}] | 同上 |
map
var v map[int]string = map[int]string {100: "AAAA", 200: "BBBB"}
fmt | output | description |
---|---|---|
%T | [map[int]string] | description |
%v | [map[100:AAAA 200:BBBB]] | 同上 |
%+v | [map[200:BBBB 100:AAAA]] | 同上 |
%#v | [map[int]string{100:"AAAA", 200:"BBBB"}] | 同上 |
struct
var v = struct {
aa int
bb string
} {
100,
"AAAA",
}
fmt | output | description |
---|---|---|
%T | [struct { aa int; bb string }] | 同上 |
%v | [{100 AAAA}] | 同上 |
%+v | [{aa:100 bb:AAAA}] | 同上 |
%#v | [struct { aa int; bb string }{aa:100, bb:"AAAA"}] | 同上 |
有疑问加站长微信联系(非本文作者)