格式化输入输出
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
示例