- 通用占位符:
%v
:以默认的方式打印变量的值%+v
:当打印结构体时,会添加字段名%#v
:Go语言风格的值表达%T
:打印变量的类型%%
:字面上的百分号,并非值的占位符
- 整型:
%d
:十进制表示%+d
:带符号的整型%q
:打印单引号%o
:不带零的八进制%#o
:带零的八进制%x
:小写的十六进制%X
:大写的十六进制%#x
:带0x的十六进制%U
:打印Unicode字符%#U
:打印带字符的Unicode%b
:打印整型的二进制
- 浮点数:
%f
:6位小数点(默认)%e
:6位小数点(科学计数法)%g
:用最少的数字来表示
- 字符串:
%s
:正常输出字符串%q
:字符串带双引号,字符串中的引号带转义符%#q
:字符串带反引号,如果字符串内有反引号,就用双引号代替%x
:将字符串转换为小写的16进制格式%X
:将字符串转换为大写的16进制格式
- 结构体:
%v
:以默认的方式打印变量的值%+v
:在打印结构体时,会添加字段名%#v
:在打印结构体时,会添加字段名和包名
- 布尔值:
%t
:打印true或false
- 指针:
%p
:带0x的指针(指针值带有0x的十六进制前缀)
此外,还可以通过指定宽度和精度来控制输出格式。例如,对于整型和浮点数,可以使用如下占位符:
- 整型宽度:
%5d
:整型长度为5,右对齐,左边留白%-5d
:左对齐右边留白%05d
:数字前面补零
- 浮点数精度:
%.3g
:最多3位数字来表示%.3f
:最多3位小数来表示
对于字符串也可以指定宽度和精度:
- 字符串宽度:
%5s
:最小宽度为5%-5s
:最小宽度为5(左对齐)