Go的标准库提供了100多个包,以支持常见功能,如输入、输出、排序以及文本处理。比如fmt包,就含有格式化输出、接收输入的函数。

Println是其中一个基础函数,可以打印以空格间隔的一个或多个值,并在最后添加一个换行符,从而输出一整行。

fmt.Printf(“%s”,’string’),错误写法。fmt.Printf(“%s”,”string”)字符串要用""引起来

1.General(常规)

格式符说明输出
%v打印变量的值(默认)fmt.Printf(“%v\r\n”,123)123
%T打印变量的类型fmt.Printf(“%v 类型为 %T\r\n”,123)123 类型为 int

2.Integer(整型)

格式符说明输出
%+d带符号的整型fmt.Printf(“%+d”, 123)+123
%o不带零的八进制fmt.Printf(“%o”,7)7
%#o带零的八进制fmt.Printf(“%#o”,7)07
%x小写的十六进制fmt.Printf(“%x”,10)a
%X大写的十六进制fmt.Printf(“%X”,10)A
%#x小写带0x的十六进制fmt.Printf(“%#x”,10)0xa
%#X大写带0x的十六进制fmt.Printf(“%#X”,10)0xA
%c相应Unicode码点所表示的字符fmt.Printf(“%c”,0x4E2D)
%U打印Unicode字符fmt.Printf(“%U”,0x4E2D)U+4E2D
%#U打印带字符的Unicodefmt.Printf(“%#U”,0x4E2D)U+4E2D '中'
%b打印整型的二进制fmt.Printf(“%b”,5)101

3.Integer width(整型宽度)

格式符说明输出
%5d表示该整型最大长度是5fmt.Printf(“|%5d|”, 1)|   1|
%-5d则相反,打印结果会自动左对齐fmt.Printf(“|%5d|”, 1234567)|1234567|
%05d会在数字前面补零fmt.Printf(“%05d\n”,1)00001

4.Float(浮点型)

格式符说明输出
%f(=%.6f) 6位小数点fmt.Printf(“%f\n”,0.1)0.100000
%e(=%.6e) 6位小数点(科学计数法)fmt.Printf(“%e\n”,10.2)1.020000e+01
%g用最少的数字来表示fmt.Printf(“%g\n”,0.0100)0.01
%.3g最多3位数字来表示fmt.Printf(“%.3g\n”,0.0100)0.01
%.3f最多3位小数来表示fmt.Printf(“%.3f\n”,0.0111)0.011

5.String(字符型)

格式符说明输出
%s正常输出字符串fmt.Printf(“%s”,”string”)string
%q字符串带双引号,字符串中的引号带转义符fmt.Printf(“%q”,string)"string"
%#q字符串带反引号,如果字符串内有反引号,就用双引号代替fmt.Printf(“%#q,%#q\n”,”string”,”str`i`ing”)`string`,”str`i`ing”
%x将字符串转换为小写的16进制格式fmt.Printf(“%x\n”,”string”)737472696e67
%X将字符串转换为大写的16进制格式fmt.Printf(“%X\n”,”string”)737472696E67
% x带空格的16进制格式fmt.Printf(“% x\n”,”string”)73 74 72 69 6E 67

6.String Width(字符型宽度)

格式符说明输出
%5s最小宽度为5fmt.Printf(“%5s,%5s\n”,”abc”,”abcdef”) abc,abcdef
%-5s最小宽度为5(左对齐)fmt.Printf(“%-5s,%-5s\n”,”abc”,”abcdef”)abc ,abcdef
%.5s最大宽度为5fmt.Printf(“%.5s,%.5s\n”,”abc”,”abcefgh”)abc,abcef
%5.7s最小宽度为5,最大宽度为7fmt.Printf(“%5.7s,%5.7s\n”,”abc”,”abcdefgh”) abc,abcdefg
%-5.7s最小宽度为5,最大宽度为7(左对齐)fmt.Printf(“%-5.7s%-5.7ss\n”,”abc”,”abcdefgh”)abc abcdefgs
%5.3s如果宽度大于3,则截断fmt.Printf(“%5.3s\n”,”abcdefgh”) abc
%05s如果宽度小于5,就会在字符串前面补零fmt.Printf(“%05s,%05s\n”,”abc”,”abcdefgh”)00abc,abcdefgh

7.Struct(结构体)

格式符说明输出
%v正常打印fmt.Printf(“%v”,”{sam {12345 67890}}”){sam {12345 67890}}
%+v带字段名称fmt.Printf(“%+v\n”,”{name:sam phone:{mobile:12345 office:67890}”){name:sam phone:{mobile:12345 office:67890}
%#v用Go的语法打印fmt.Printf(“%#v\n”,”main.People{name:”sam”, phone:main.Phone{mobile:”12345”, office:”67890”}}”){sam {12345 67890}}

8.Boolean(布尔型)

格式符说明输出
%t打印true或falsefmt.Printf(“%t”,true)true

9.Pointer(指针)

格式符说明输出
%p带0x的指针a :=1;fmt.Printf(“%p\n”,&a)0xc042056088
%#p不带0x的指针a :=1;fmt.Printf(“%p\n”,&a)c042056088