golang中的fmt包实现了格式化I/O函数,类似于C的printf和scanf。

#定义示例类型和变量
type Human struct {
      Name string
}
var people = Human{Name:"zhangsan"}

普通占位符

占位符 说明 举例 输出
%v 相应值的默认输出 Printf("%v",people) {zhangsan}
%+v 打印结构体时,会添加字段名 Printf("%+v",people) {Name:zhangsan}
%#v 相应值的Go语法表示 Printf("#v",people) main.Human{Name:"zhangsan"}
%% 字面上的百分号,并非值得占位符 Printf("%%") %

布尔占位符

占位符 说明 举例 输出
%t true或者false Printf("%t",true) true

整数占位符

占位符 说明 举例 输出
%b 二进制表示 Printf("%b",5) 101
%c 相应Unicode码点所表示的字符 Printf("%c",0x4E2D)
%d 十进制表示 Printf("%d",0x12) 18
%o 八进制表示 Printf("%d",10) 12
%q 单引号围绕的字符字面值,由Go语法安全地转义 Printf("%q",0x4E2D) '中'
%x 十六进制表示,字母形式为小写a-f Printf("%x",13) d
%X 十六进制表示,字母形式为大写A-F Printf("%x",13) D
%U Unicode格式:U+1234,等同于"U+%04X" Printf("%U",0x4E2D) U+4E2D

指针

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