fmt打印不显示 go_golang打印输出fmt和log

fmt

%v 值的默认格式表示。当输出结构体时,扩展标志(%+v)会添加字段名

%#v 值的Go语法表示

%T 值的类型的Go语法表示

%t 单词true或false

%% 百分号

%p 表示为十六进制,并加上前导的0x

%s 直接输出字符串或者[]byte %q 该值对应的双引号括起来的go语法字符串字面值,必要时会采用安全的转义表示

%x 每个字节用两字符十六进制数表示(使用a-f)

%X 每个字节用两字符十六进制数表示(使用A-F)

%b 表示为二进制

%c 该值对应的unicode码值

%d 表示为十进制

%o 表示为八进制

%q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示

6 %x 表示为十六进制,使用a-f

7 %X 表示为十六进制,使用A-F

8 %U 表示为Unicode格式:U+1234,等价于"U+%04X"

%f: 默认宽度,默认精度

%9f 宽度9,默认精度

%.2f 默认宽度,精度2 %9.2f 宽度9,精度2 %9.f 宽度9,精度0

fmt.Printf("%v")

fmt.Printf("%#v\n",p)

fmt.Printf("%v")

fmt.Printf("%T")

{xu 20}

main.person{name:"liu", age:20}

{name:liu age:20}

main.person

简单print变形:

Print: 输出到控制台,不接受任何格式化操作

Println: 输出到控制台并换行

Printf : 只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出别的类型)

Sprintf:格式化并返回一个字符串而不带任何输出

Fprintf:来格式化并输出到 io.Writers 而不是 os.Stdout

func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)

Fprintf根据format参数生成格式化的字符串并写入w。返回写入的字节数和遇到的任何错误。

func Sprintf(format string, a ...interface{}) string

Sprintf根据format参数生成格式化的字符串并返回该字符串。

func Fprint(w io.Writer, a ...interface{}) (n int, err error)

Fprint采用默认格式将其参数格式化并写入w。如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格。返回写入的字节数和遇到的任何错误。

func Sprint(a ...interface{}) string

Sprint采用默认格式将其参数格式化,串联所有输出生成并返回一个字符串。如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格。

func Errorf(format string, a ...interface{}) error

Errorf根据format参数生成格式化字符串并返回一个包含该字符串的错误。

log

对日志信息进行存储

打印时间

线程安全

还有日志的转存打印

创建New对象的时候,通过控制第一个参数,可以直接输出到标准输出上,也可以存到文件中。

如果仅仅想输出到终端,可以直接调用log.XXX方法,不用先生成一个logger对象,再去通过logger对象来调用。在log包中,有一些methods是直接对logger的实现,有一些是直接的库函数,可以直接使用。

关于单元测试时候的t.logf

这个在内部其实还是使用类似的logs的方法,都是对基本的并行的操作进行了封装之后再处理的,加上了mutex操作,因此在单元测试中也并不推荐直接使用fmt.printf的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值