首页 > Go学习 > fmt标准库的打印函数
2021
09-08

fmt标准库的打印函数

fmt标准库是编写代码使用最频繁的库之一,可以使用fmt包的打印函数来查看变量的信息

fmt标准库包含三个打印函数

fmt.Print(args):不进行格式化的按顺序打印传入的所有值
fmt.Println(args):不进行格式化的按顺序打印传入的所有值,多个传入值之间会添加空格,并且在打印完成后自动添加换行符
fmt.Printf(format_str,args):按照需求格式化传入的所有值

前面两个使用比较简单,这里就不再赘述了,主要讲讲第三个fmt.Printf()函数

Printf函数的定义:

func Printf(format string, a ...interface{}) (n int, err error) {
    return Fprintf(os.Stdout, format, a...)
}

第一个参数是需要格式化的字符串,可以包含占位符
占位符是以 % 开头的若干位短代码,这些短代码根据约定的格式决定着变量输出的格式

多个占位符按照后面传入的变量顺序依次按照指定格式打印变量

通用占位符

%v: 以值的默认格式打印
%+v:类似%v,但输出结构体时会包含字段名
%#v:值的Go语法表示(定义的语法格式)
%T: 打印值的类型
%%: 打印百分号本身
%+q:保证只输出ASCII编码的字符,其他字符以unicode编码输出
%#U:若是可打印字符则打印出来

布尔值

%t :打印布尔值

字符串

%s:输出字符串表示(string类型或[]byte)
%q:双引号包含的字符串
%#q:用反引号包含的字符串
%x:十六进制,小写字母,每字节两个字符
%X:十六进制,大写字母,每字节两个字符

指针

%p :打印指针的地址
%#p:打印去掉0x前缀的内存地址

整型

%b:以二进制打印
%b:打印二进制
%d:以十进制打印
%o:不带0的八进制
%#o :带零的八进制
%x:以十六进制打印,使用小写:a-f
%X:以十六进制打印,使用大写:A-F
%#x: 带0x的十六进制
%c:打印unicode码值或unicode编码(0x1234格式)对应的字符
%q:单引号括起来字面值
%U:打印对应的Unicode编码,如U+1234

浮点数

%e:小写e表示的科学计数法
%E:大写E表示的科学计数法
%f:不用指数表示的浮点数
%F:等价于%f
%g:根据实际情况采用%e或%f格式
%G:根据实际情况采用%E或%F格式

宽度标识符

%[0-]n[.n]占位符:
百分号后面跟0表示用前导0填充直到长度n(不指定0使用空格填充)
如果对应的值位数大于指定的n,则会按照实际位数输出
负号(-)表示向右填充,默认向左填充
仅能指定0作为向左填充符号,向右填充只能使用默认的空格,所以0和-不会同时出现
最后的.n表示最大长度多少,如5.8表示最短5,最长8

%[0-][n].n占位符:
用来表示一个数值的精度,第一个n表示整数位和小数位一共n位(省略使用值的实际位数)
第二个n表示小数位n位
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。