golang 函数为什么能返回局部变量 1. 代码 //定义变量返回一个指针int func stackframe1() *int{ var testVarable int = 10 return &testVarable } //golang 编译器会自己决定这个变量存放于栈还是堆,编译器会自己做逃逸分析 //如果这个变量作用范围没有超出当前函数 则会存放于栈中 否则存放于堆中