【Go】打印格式化

匿名 (未验证) 提交于 2019-12-02 23:36:01

通用

  • %v:value,值的默认格式表示
  • %+v:类似 %v ,但输出结构体时会添加字段名
  • %#v:值的 Go 语法表示
  • %T:type,值的类型的 Go 语法表示

布尔值

  • %t:binary,表示为二进制

整数

  • %b:binary,表示为二进制
  • %c:char,该值对应的 unicode 码值
  • %d:digital,表示为十进制
  • %8d:表示该整型长度是8,不足8则在数值前补空格,如果超出8,则以实际为准
  • %08d:数字长度是8,不足8位的,在数字前补0,如果超出8,则以实际为准
  • %o:octal,表示为八进制
  • %q:quotation,该值对应的单引号括起来的 Go 语法字符字面值,必要时会采用安全的转义表示
  • %x:hex,表示为十六进制,使用 a-f
  • %X:表示为十六进制,使用A-F
  • %U:unicode,表示为 Unicode 格式,例如:“U+1234” 等价于 “U+%04X”

浮点数与复数

  • %b:无小数部分,二进制指数的科学计数法,如:-123456p-78;参见strconv.FormatFloat
  • %e:等价于 =%.6e,保留6位小数部分的科学计数法,如:-1234.456e+78
  • %E:科学计数法,如:-1234.456E+78
  • %f:float,等价于 =%.6f,保留6位小数部分
  • %F:等价于:%f
  • %g:根据实际情况采用 %e%f格式(以获得更简洁、准确的输出)
  • %G:根据实际情况采用 %f%fE(以获得更简洁、准确的输出)

字符串和[]byte

  • %s:string,直接输出字符串或者 []byte,能输出的要么是一个字符串,要么是一个字节数组
  • %q:改值对应的双引号括起来的 Go 语法字符串字面值,必要时会采用安全的转义表示
  • %x:hex,表示为十六进制,使用 a-f
  • %X:表示为十六进制,使用A-F

指针

  • %p:pointer,表示为十六进制,并加上前导的 0x
  • 没有 %u,整数如果是无符号类型,自然也是无符号的。,类似的,也没有必要指定操作数的尺寸(int、int64)
  • 宽度通过一个紧跟在百分号后面的十进制数指定,如果未指定宽度,则表示值时除必须之外不作填充。精度通过(可选的)宽度和点好后的十进制数指定。如果未指定精度,会使用默认精度;如果点好后没有跟数字,表示精度为0,如下示例:
  1. %f:默认宽度,默认精度
  2. %9f:宽度9,默认精度
  3. %.2f:默认宽度,精度2
  4. %9.2f:宽度9,精度2
  5. %9.f:宽度9,精度0

其它flag

  • +:总是输出数值的正负号,对 %q%+q 会生成全部是 ASCII 字符的输出(通过转义)
  • ’’:对数值,整数前加空格,而负数前加负号
  • ’_’:在输出右边填充空白而不是默认的左边(即从默认的右对齐切换为左对齐)
  • ’#’:切换格式,详细描述如下:
  1. 八进制数前加 0 (%#o),十六进制数前加 0x (%#x)或 0X (%#X),指针去掉前面的 0x (%#p
  2. 对于 %q (%#q),如果 strconv.CanBackquote返回值为真,则会输出反引号括起来的未转义字符串
  3. 对于%U (%#U),输出 ASCII 格式后,如字符串可打印,还会输出空格或单引号括起来的 Go 字面值
  4. 对字符串采用 %x%X% x% X)时,会给各打印的字节之间加空格
  5. ‘0’ 使用 0,而不是空格填充,对于数值类型会把填充的0放在正负号后面
文章来源: https://blog.csdn.net/qq_41964425/article/details/88935597
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!