go格式化输出

格式化输出

go使用和C语言类似的格式化输出语法,用的是fmt.Printf函数。

go语言的格式化语法结构如下

// %[旗标][宽度][.精度][\[arg索引\]]动词
"%+8.3[3]f"

旗标

旗标 效果
+ 对于数值类型输出正负号;%+q只输出ASCII编码的字符;%+v%v的基础上输出字段名
- 在右边进行宽度填充,而不是默认的左边
空格 对于数值类型的正数,保留一个空白的符号位
0 用0进行宽度填充而不用空格
# 八进制添加前缀0(%#o),十六进制添加前缀0x(%#x)或0X(%#X),指针去掉前缀0x(%#p),%#v%+v的基础上输出类型名

宽度和精度

宽度与精度的控制格式以Unicdoe码点为单位。可以用常数表示,也可以用*表示,此时它们的值会从下一个操作数中获取,该操作数类型必须为int。

  • 对数值而言,宽度为该数值占用区域的最小宽度;精度为小数点后的位数。但是对%g(%G),精度为数字的总和。
  • 对于字符串,精度为输出的最大字符数,必要时会截断字符串。

占位符

格式 说明
%d 十进制数
%b,%o,%x 二进制、八进制、十六进制整数
%#b,%#o,%#x 二进制、八进制、十六进制整数,并显示相应前缀
%f,%g,%e 浮点数
%t 布尔值: true或者false
%c 相应Unicode码点表示的字符
%s 字符串
%U 显示Unicode码点
%q 带双引号的字符串"abc123"或者带单引号的字符'a','b'
%v 变量的自然形式(natural format)
%#v 使用Go语言类是的语法打印变量值
%T 变量的类型
%% 字面上的百分号标志(无操作数)
%p 十六进制表示指针地址,并使用前缀0x

浮点数

格式 说明
%e,%E 科学计数法,以10为底
%f,%F 普通小数格式
%g 根据情况选择 %e%f 以产生更紧凑的(无末尾的 0)输出
%G 根据情况选择 %E%F 以产生更紧凑的(无末尾的 0)输出

参考资料

posted @ 2022-12-11 22:35  HachikoT  阅读(336)  评论(0编辑  收藏  举报