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)
进行输出