Go标准库fmt的通配符
- 总览
- %v 格式化常规对象
- %v 格式化复合对象
- %f 浮点数的宽度
总览
类型 | 通配符 | 含义 |
---|---|---|
通用 | %v | 值的默认格式 |
通用 | %+v | 类似%v,但输出结构体时会添加字段名 |
通用 | %#v | Go语法表示值 |
通用 | %T | Go语法表示类型 |
通用 | %% | 百分号表示 |
布尔值 | %t | true或false |
整数 | %b | 表示二进制 |
整数 | %c | 该值对应的unicode吗值 |
整数 | %d | 表示十进制 |
整数 | %o | 表示八进制 |
整数 | %q | 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 |
整数 | %x | 表示为十六进制,使用a-f |
整数 | %X | 表示为十六进制,使用A-F |
整数 | %U | 表示为Unicode格式:U+1234,等价于"U+%04X" |
浮点数与复数 | %b | 无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat |
浮点数与复数 | %e | 科学计数法,例如 -1234.456e+78 |
浮点数与复数 | %E | 科学计数法,例如 -1234.456E+78 |
浮点数与复数 | %f | 有小数点而无指数,例如 123.456 |
浮点数与复数 | %F | 等价于%f |
浮点数与复数 | %g | 根据实际情况采用%e或%f格式(以获得更简洁、准确的输出) |
浮点数与复数 | %G | 根据实际情况采用%E或%F格式(以获得更简洁、准确的输出) |
字符串和字节片段 | %s | 输出字符串表示(string类型或[]byte) |
字符串和字节片段 | %q | 双引号围绕的字符串,由Go语法安全地转义 |
字符串和字节片段 | %x | 十六进制,小写字母,每字节两个字符 (使用a-f) |
字符串和字节片段 | %X | 十六进制,大写字母,每字节两个字符 (使用A-F) |
指针 | %p | base 16表示法,带前导0x |
%v 格式化常规对象
类型 | 格式 |
---|---|
bool | %t |
int, int8 etc. | %d |
uint, uint8 etc. | %d, %#x if printed with %#v |
float32, complex64, etc | %g |
string | %s |
chan | %p |
pointer | %p |
%v 格式化复合对象
类型 | 格式 |
---|---|
struct | {field0 field1 …} |
array, slice | [elem0 elem1 …] |
maps | map[key1:value1 key2:value2] |
pointer to above | &{}, &[], &map[] |
%f 浮点数的宽度
格式 | 含义 |
---|---|
%f | default width, default precision |
%9f | width 9, default precision |
%.2f | default width, precision 2 |
%9.2f | width 9, precision 2 |
%9.f | width 9, precision 0 |