标准库fmt
是我们最常用到的格式化输入,输出工具。
fmt.Println
,接收任意参数,打印到命令行并进行换行:
输出
打印结构体有自己默认的序列化为字符串的方法:
输出
你也可以自定义输出的内容,只要结构体实现了String() string
方法,fmt
包就优先调用该方法。
输出
使用fmt.Printf
和动词占位符进行更精细化的格式化操作。
输出
- 打印整数类型,使用
%d
动词, d
是 decimal 的缩写,表示十进制整数
输出
输出
输出
输出
- 任意类型,使用
%v
动词,go会选择适合的格式化方式
输出
- 通用格式化动词,输出默认格式
动词 | 描述 |
---|
%v | 按值的默认格式输出。 |
%+v | 类似 %v ,但结构体会包含字段名。 |
%#v | 值的 Go 语法表示形式(即源代码格式)。 |
%T | 打印值的类型。 |
%% | 字面百分号。 |
- 布尔类型
- 整数类型
动词 | 描述 |
---|
%b | 二进制表示。 |
%c | 相应 Unicode 码点的字符。 |
%d | 十进制表示。 |
%o | 八进制表示。 |
%x | 十六进制(小写字母)。 |
%X | 十六进制(大写字母)。 |
%U | Unicode 格式,例如 U+1234 。 |
- 浮点数和复数
动词 | 描述 |
---|
%e | 科学计数法(小写)。 |
%E | 科学计数法(大写)。 |
%f | 标准浮点数表示。 |
%.nf | 指定精度,n 为小数位数。 |
%g | 根据数值选择使用 %e 或 %f 。 |
%G | 根据数值选择使用 %E 或 %f 。 |
- 字符串和字节切片
动词 | 描述 |
---|
%s | 字符串或字节切片的内容(原样输出)。 |
%q | 双引号括起来的字符串(转义特殊字符)。 |
%x | 每字节以两字符的十六进制表示(小写字母)。 |
%X | 每字节以两字符的十六进制表示(大写字母)。 |
- 指针
与Printf
, Println
相同,不同的是将字符串返回,而不是打印到命令行:
输出
与Printf
, Println
相同,不同的是将结果写入io.Writer
,而不是打印到命令行(os.Stdout
)
输出
你也可以指定其他io.Wrtier
接口的实现,例如输出到文件(*os.File
), http响应(http.ResponseWriter
)等。