Go分配内存规则 全局变量 引用类型的分配在堆上,值类型的分配在栈上。 局部变量 一般分配在栈上。如果局部变量太大,则分配在堆上。如果函数执行完,仍然有外部引用此局部变量,则分配在堆上。 什么是逃逸 把本该分配在栈上的变量分配到了堆,则发生了逃逸。 案例 var global *int func fn() { var x int x = 1 global = &x