在go语言中使用fmt或者log打印格式信息输出控制

2023-06-01 00:00:00 语言 格式 输出

在go语言中如何控制fmt或log打印格式输出?使用此参考作为如何控制 fmt 或日志打印功能格式的指南。


一般的:

%v默认格式的值。打印结构时,加号标志 (%+v) 添加字段名称

%#v值的 Go 语法表示

%T值类型的 Go 语法表示

%%文字百分号;不消耗任何价值


布尔值:

%t真或假这个词


整数:

%b基地2

%c由相应的 Unicode 码位表示的字符

%d基数 10

%o以8 为基数 - 八进制(参见此处关于前导零问题)

%q使用 Go 语法安全转义的单引号字符文字。

%x以 16 为基数,小写字母表示 af

%X以 16 为基数,AF 为大写字母

%UUnicode 格式:U+1234;与“U+X”相同


浮点数和复数成分:

%b指数为 2 的无十进制科学记数法,采用 strconv.FormatFloat 的方式,格式为“b”,例如 -123456p-78

%e科学计数法,例如 -1234.456e+78

%E科学计数法,例如 -1234.456E+78

%f小数点但没有指数,例如 123.456

%g%e 或 %f 中的哪一个产生更紧凑的输出

%G%E 或 %f 中的哪一个产生更紧凑的输出


字符串和字节片:

%s字符串或切片的未解释字节

%q使用 Go 语法安全转义的双引号字符串

%x基数 16,小写,每字节两个字符

%X以 16 为基数,大写,每字节两个字符


指针:

%p以 16 为基数的表示法,前导 0x


其他标志:

+始终为数值打印符号;保证 %q (%+q) 仅输出 ASCII

-在右侧而不是左侧填充空格(左对齐字段)

#替代格式:为八进制添加前导 0 (%#o),为十六进制添加 0x (%#x);

0X 表示十六进制 (%#X);为 %p (%#p) 抑制 0x;

如果可能,为 %q (%#q) 打印一个原始(反引号)字符串;

如果字符对于 %U (%#U) 是可打印的,则写入例如 U+0078 'x'。

' '(空格)为省略的登录数字留一个空格(% d);

在字节之间放置空格以十六进制打印字符串或切片 (% x, % X)

0用前导零而不是空格填充


参考

https://golang.org/pkg/fmt/

相关文章