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的指针