-1
// example1.go
packge main
func main() {
s := make([]byte, 1024, 1024)
_ = s
}
旨意在堆栈和查找分配汇编代码不叫runtime.makeslicegolang组装内存分配
// example2.go
packge main
func main() {
cap := 1024
s := make([]byte, 1024, cap)
_ = s
}
旨意堆和查找汇编代码被分配有runtime.makeslice为什么???
// example3.go
package main
func main() {
a := 100
if a>1 {
a = 1000
}
b := interface{}(a)
_ = b
}
查找汇编代码,看看编译器是非常聪明的选择是,但example2.go为什么不这样做
请冠军,你要问,并解释一下关于你想达到什么问题,你的问题。 –
这完全取决于您使用的编译器实现。您没有提及编译器或版本,但标准的gc编译器不断发展,在将来的版本中可能会或可能不会产生相同的输出。 – JimB