Go:使用 fmt.Println() 编译后比 println() 的体积大?

最近我看到 很多代码 都喜欢使用 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) 进行输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值