Go语言:为什么使用 fmt.Println() 编译后比 pr
2019-10-08 本文已影响0人
白祤星
前言:
- 最近我看到
很多代码都喜欢使用fmt.Println()来进行输出 - 但是
Go内置的一个println()却没什么人使用
作用:
- println():用于
输出基础类型的函数,因为是内置函数,所以不需要导包 - fmt.Println():用于
输出 基础类型 和 复合类型的函数,隶属于fmt库
简单例子对比:
- 编译:
go build -ldflags="-w -s"
- println() 的例子:
println(`Hellow World`)
编译后:760 KB
- fmt.Println() 例子:
fmt.Println(`Hellow World`)
编译后:1,461 KB
- 上述
简单例子对比可以看出,fmt.Println()编译后可执行文件 的 体积大小是println()的2倍 - 这是什么原因导致的?
- 我通过
VS Code打开了fmt库的源码 - 发现了
fmt库中还引入了其他的库 导致了编译后体积增大了不少
总结:
- 在项目中如果不是遇到
复合类型的输出 - 尽可能不要使用
fmt.Println() - 使用
fmt.Println()会影响一定的性能 - 输出
数组尽可能使用for range+println() - 明确结构的
结构体可以使用println(结构体.字段1, 结构体.字段2, 结构体.字段3)进行输出