Printf() 函数可以使用多种格式化动词对输出进行格式化。下面是可以与所有数据类型一起使用的一些通用格式化动词:
通用格式化动词: 以下动词适用于所有数据类型:
| 动词 | 描述 |
|---|---|
%v | 以默认格式打印值 |
%#v | 以 Go 语法格式打印值 |
%T | 打印值的类型 |
%% | 打印百分号 |
示例:
1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = 15.5 9 var txt = "Hello World!" 10 11 fmt.Printf("%v\n", i) 12 fmt.Printf("%#v\n", i) 13 fmt.Printf("%v%%\n", i) 14 fmt.Printf("%T\n", i) 15 16 fmt.Printf("%v\n", txt) 17 fmt.Printf("%#v\n", txt) 18 fmt.Printf("%T\n", txt) 19}
结果:
115.5 215.5 315.5% 4float64 5Hello World! 6"Hello World!" 7string
整数格式化动词
以下动词适用于整数数据类型:
| 动词 | 描述 |
|---|---|
%b | 二进制 |
%d | 十进制 |
%+d | 带符号的十进制 |
%o | 八进制 |
%O | 八进制(带 0o 前缀) |
%x | 十六进制(小写) |
%X | 十六进制(大写) |
%#x | 带 0x 前缀的十六进制 |
%4d | 使用空格填充(宽度 4,右对齐) |
%-4d | 使用空格填充(宽度 4,左对齐) |
%04d | 使用零填充(宽度 4) |
示例:
1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = 15 9 10 fmt.Printf("%b\n", i) 11 fmt.Printf("%d\n", i) 12 fmt.Printf("%+d\n", i) 13 fmt.Printf("%o\n", i) 14 fmt.Printf("%O\n", i) 15 fmt.Printf("%x\n", i) 16 fmt.Printf("%X\n", i) 17 fmt.Printf("%#x\n", i) 18 fmt.Printf("%4d\n", i) 19 fmt.Printf("%-4d\n", i) 20 fmt.Printf("%04d\n", i) 21}
结果:
11111 215 3+15 417 50o17 6f 7F 80xf 9 15 1015 110015
字符串格式化动词
以下动词适用于字符串数据类型:
| 动词 | 描述 |
|---|---|
%s | 普通字符串打印 |
%q | 双引号包裹的字符串打印 |
%8s | 普通字符串打印(宽度 8,右对齐) |
%-8s | 普通字符串打印(宽度 8,左对齐) |
%x | 字节值的十六进制转储 |
% x | 带空格的十六进制转储 |
示例:
1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var txt = "Hello" 9 10 fmt.Printf("%s\n", txt) 11 fmt.Printf("%q\n", txt) 12 fmt.Printf("%8s\n", txt) 13 fmt.Printf("%-8s\n", txt) 14 fmt.Printf("%x\n", txt) 15 fmt.Printf("% x\n", txt) 16}
结果:
1Hello 2"Hello" 3 Hello 4Hello 548656c6c6f 648 65 6c 6c 6f
布尔格式化动词
以下动词适用于布尔数据类型:
| 动词 | 描述 |
|---|---|
%t | 布尔运算符的 true 或 false 格式(与 %v 相同) |
示例:
1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = true 9 var j = false 10 11 fmt.Printf("%t\n", i) 12 fmt.Printf("%t\n", j) 13}
结果:
1true 2false
浮点数格式化动词
以下动词适用于浮点数数据类型:
| 动词 | 描述 |
|---|---|
%e | 科学计数法,指数为 'e' |
%f | 小数点,无指数部分 |
%.2f | 默认宽度,精度为 2 |
%6.2f | 宽度 6,精度 2 |
%g | 必要时使用指数,仅保留必要的位数 |
示例:
1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = 3.141 9 10 fmt.Printf("%e\n", i) 11 fmt.Printf("%f\n", i) 12 fmt.Printf("%.2f\n", i) 13 fmt.Printf("%6.2f\n", i) 14 fmt.Printf("%g\n", i) 15}
结果:
13.141000e+00 23.141000 33.14 4 3.14 53.141
请注意,这个翻译可能不是完美的,因为语言之间的表达方式可能有细微的差异。
最后
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号搜索Let us Coding,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注
