格式化动词总是记不住,这里汇总一下
fmt.Printf() 函数可以使用多种格式化动词对输出进行格式化。下面是可以与所有数据类型一起使用的一些通用格式化动词:
以下动词适用于所有数据类型
动词 | 描述 |
---|---|
%v | 以默认格式打印值 |
%#v | 以 Go 语法格式打印值 |
%T | 打印值的类型 |
%% | 打印百分号 |
package main
import (
"fmt"
)
func main() {
var i = 15.5
var txt = "Hello World!"
fmt.Printf("%v\n", i)
fmt.Printf("%#v\n", i)
fmt.Printf("%v%%\n", i)
fmt.Printf("%T\n", i)
fmt.Printf("%v\n", txt)
fmt.Printf("%#v\n", txt)
fmt.Printf("%T\n", txt)
}
运行结果
15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string
整数格式化动词描述
动词 | 描述 |
---|---|
%b | 二进制 |
%d | 十进制 |
%+d | 带符号的十进制 |
%o | 八进制 |
%O | 八进制(带 0o 前缀) |
%x | 十六进制(小写) |
%X | 十六进制(大写) |
%#x | 带 0x 前缀的十六进制 |
%4d | 使用空格填充(宽度 4,右对齐) |
%-4d | 使用空格填充(宽度 4,左对齐) |
%04d | 使用零填充(宽度 4) |
字符串格式化
动词 | 描述 |
---|---|
%s | 普通字符 |
%q | 双引号包裹的字符串打印 |
%8s | 普通字符串打印(宽度 8,右对齐) |
%-8s | 普通字符串打印(宽度 8,左对齐) |
%x | 字节值的十六进制转储 |
% x | 带空格的十六进制转储 |
浮点数格式化
动词 | 描述 |
---|---|
%e | 科学计数法,指数为 ‘e’ |
%f | 小数点,无指数部分 |
%.2f | 默认宽度,精度为 2 |
%6.2f | 宽度 6,精度 2 |
%g | 必要时使用指数,仅保留必要的位数 |