最近我看到 很多代码 都喜欢使用 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倍
这是什么原因导致的?
打开了 fmt 库的 源码
发现了 fmt 库中 还引入了其他的库
导致了编译后体积增大了不少
总结:
在项目中如果不是遇到 复合类型的输出 ,尽可能不要使用 fmt.Println()
使用 fmt.Println() 会 影响一定的性能,还要导入其他库
输出 数组 尽可能使用 for range + println()
明确结构的 结构体 可以使用 println(结构体.字段1, 结构体.字段2, 结构体.字段3) 进行输出