1、通用的输出方式

%v #仅输出该变量的值

%+v #输出 该变量的值,如果是数组k/v 则将k/v都输出

%#v #先输出结构体名字值,再输出结构体(字段名字+字段的值)

%T #输出结构体名称

%% #百分号

GO的printf格式输出使用_科学计数法

2、整型类型

%b 二进制表示

%c 相应Unicode码点所表示的字符

%d 十进制表示

%o 八进制表示

%q 单引号围绕的字符字面值,由Go语法安全地转义

%x 十六进制表示,字母形式为小写 a-f

%X 十六进制表示,字母形式为大写 A-F

%U Unicode格式:123,等同于 "U+007B"

GO的printf格式输出使用_十六进制_02

3、浮点数

%b 无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat

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

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

%f 有小数部分但无指数部分,如123.456

%F 等价于%f

%g 根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)

%G 根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)

GO的printf格式输出使用_十六进制_03

4、布尔型

%t true 或 false

GO的printf格式输出使用_科学计数法_04

5、字符串

%s 字符串或切片的无解译字节

%q 双引号围绕的字符串,由Go语法安全地转义

%x 十六进制,小写字母,每字节两个字符

%X 十六进制,大写字母,每字节两个字符

GO的printf格式输出使用_字符串_05

指针 %p

type Website struct {

Name string

} // 定义结构体变量 var site = Website{Name:"studygolang"}

占位符                        说明                                                举例                                    输出
%p 十六进制表示,前缀 0x Printf("%p", &site) 0x4f57f0

补充:

没有%u。整数如果是无符号类型自然输出也是无符号的。类似的,也没有必要指定操作数的尺寸(int8,int64)。

宽度通过一个紧跟在百分号后面的十进制数指定,如果未指定宽度,则表示值时除必需之外不作填充。精度通过(可选的)宽度后跟点号后跟的十进制数指定。如果未指定精度,会使用默认精度;如果点号后没有跟数字,表示精度为0。举例如下:

%f: 默认宽度,默认精度
%9f 宽度9,默认精度
%.2f 默认宽度,精度2
%9.2f 宽度9,精度2
%9.f 宽度9,精度0