-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