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