Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作。
General
%v
以默认的方式打印变量的值%T
打印变量的类型%q
打印基础类型的内容
Integer
%+d
带符号的整型,fmt.Printf(“%+d”,255)// +255%q
打印单引号%o
不带零的八进制%#o
带零的八进制%x
小写的十六进制%X
大写的十六进制%#x
带0x的十六进制%U
打印Unicode字符%#U
打印带字符的Unicode字符%b
打印整型的二进制
Integer width
%5d
表示左侧有最多5个占位符1
2
3
4
5
6fmt.Printf("|%5d|\n", 1)
fmt.Printf("|%5d|", 123456)
# 输出
| 1|
|123456|%-5d
相反,结果自动左对齐%05d
会在数字前补0
Float
%f(=%.6f)
6位小数%e(=%.6e)
6位小数(科学计数法)%g
用最少的数字表示%.3g
最多3位数字来表示如:fmt.Printf(“%.3g\n”, 23434340.987)//2.34e+07%.3f
最多3位小数表示 如:fmt.Printf(“%.3f”, 2300.98743343) //2300.987
String
%s
正常输出字符串%q
字符串带双引号,字符串中的引号带转义符%#q
字符串带反引号,如果字符串内有反引号,就用双引号代替%x
将字符串转换为小写的16进制格式%X
将字符串转换为大写的16进制格式% x
带空格的16进制格式
String Width (以5做例子)
%5s
最小宽度为5,右对齐%-5s
最小宽度为5,左对齐%.5s
最大宽度为5%5.7s
最小宽度为5,最大宽度为7,右对齐%-5.7s
最小宽度为5,最大宽度为7,左对齐%5.3s
如果宽度大于3,则截断%05s
如果宽度小于5,就会在字符串前面补零
struct
%v
正常打印{golang 8 1.0.0 {shandong#liaocheng}}%+v
带字段名称如:{name:golang age:8 version:1.0.0 address:{name:shandong#liaocheng}}%#v
用go的语法打印:main.user{name:”golang”, age:8, version:”1.0.0”, address:main.address{name:”shandong#liaocheng”}}
bool
%t
打印true或false
pointer
%p
带0x的指针,如1
fmt.Printf("%p\n", &address{"liaocheng"}) // 打印带0x的指针
%#p
不带0x的指针,如1
fmt.Printf("%#p\n", &address{"liaocheng"}) // 打印不带0x的指针