通用
- %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,如下示例:
- %f:默认宽度,默认精度
- %9f:宽度9,默认精度
- %.2f:默认宽度,精度2
- %9.2f:宽度9,精度2
- %9.f:宽度9,精度0
其它flag
- +:总是输出数值的正负号,对 %q 或 %+q 会生成全部是 ASCII 字符的输出(通过转义)
- ’’:对数值,整数前加空格,而负数前加负号
- ’_’:在输出右边填充空白而不是默认的左边(即从默认的右对齐切换为左对齐)
- ’#’:切换格式,详细描述如下:
- 八进制数前加 0 (%#o),十六进制数前加 0x (%#x)或 0X (%#X),指针去掉前面的 0x (%#p)
- 对于 %q (%#q),如果 strconv.CanBackquote返回值为真,则会输出反引号括起来的未转义字符串
- 对于%U (%#U),输出 ASCII 格式后,如字符串可打印,还会输出空格或单引号括起来的 Go 字面值
- 对字符串采用 %x 或 %X (% x 或 % X)时,会给各打印的字节之间加空格
- ‘0’ 使用 0,而不是空格填充,对于数值类型会把填充的0放在正负号后面
文章来源: https://blog.csdn.net/qq_41964425/article/details/88935597