不知道你有没有遇到这种情况,同事和你争执,
非要说左边的代码要比右边的快,因为左边的少写了一行代码,这时你心生不忿
但又无力反驳,只好忍气吞声
那这边文章我们就来打他的脸
我们先来看一下我们日常写代码的日常过程
我们写完的代码最终会变成一个 hello 的二进制可执行文件
只要我们编译的时候得到的结果是一样的,我们就可以堵住同事的嘴
我们分别对上述的代码进行编译
left.go
- 1 package main
- 2
- 3 type person struct {
- 4 age int
- 5 }
- 6
- 7 func main() {
- 8 var a = &person{}
- 9 println(a)
- 10 }
go tool compile -S ./left.go
right.go
- 1 package main
- 2
- 3 type person struct {
- 4 age int
- 5 }
- 6
- 7 func main() {
- 8 var b = person{111}
- 9 var a = &b
- 10 println(a)
- 11 }
go tool compile -S ./right.go
我们对比两个编译结果可以发现,其实它们是没有区别的,因此我们就可以知道它们的运行效率是一样的
本文完~