Go 语言内存分配,什么分配在堆上,什么分配在栈上Go 语言内存分配,什么分配在堆上,什么分配在栈上 题目来源:知乎 答案: Go 语言有两部分内存空间:栈内存和堆内存。栈内存由编译器自动分配和释放,函数调用的参数、返回值以及局部变量大都会被分配到栈上。堆内存的生命周期比栈内存要长,如果函数返回的值还会在其他地方使用,那么这个值就会被编译器自动分配到堆上。堆内存相比栈内存来说,不能自动被编译器释放,只能通过垃圾回收器才能释放,所以栈内存效率会很高。