格式化输入输出
fmt包实现了类似C语言printf和scanf的格式化I/O,对应函数为:Printf和Scanf。
详见:https://golang.google.cn/pkg/fmt/
一 输出
1.1 普通占位符
占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {egon}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:egon} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"egon"} %T 相应值的类型的Go语法表示 Printf("%T", people) main.Human %% 字面上的百分号,并非值的占位符 Printf("%%") %
示例
package main import "fmt" func main() { var x interface{} = struct { name string age int }{"egon", 18} fmt.Printf("%v\n",x) fmt.Printf("%+v\n",x) fmt.Printf("%#v\n",x) fmt.Printf("%T\n",x) fmt.Printf("%v%%\n",100) }
输出
{egon 18} {name:egon age:18} struct { name string; age int }{name:"egon", age:18} struct { name string; age int } 100%
1.2 布尔占位符
占位符 说明 举例 输出 %t true 或 false Printf("%t", true) true
1.3 整数占位符
占位符 说明 举例 输出 %d 十进制表示 Printf("%d", 0x12) 18 %b 二进制表示 Printf("%b", 5) 101 %o 八进制表示 Printf("%d", 10) 12 %x 十六进制表示,字母形式为小写 a-f Printf("%x", 13) d %X 十六进制表示,字母形式为大写 A-F Printf("%x", 13) D %c 相应Unicode码点所表示的字符 Printf("%c", 0x4E2D) 中 %q 单引号括起来的字符字面值,由Go语法安全地转义 Printf("%q", 0x4E2D) '中' %U Unicode格式:U+1234,等同于 "U+%04X" Printf("%U", 0x4E2D) U+4E2D
示例