栈和堆for golang

栈和堆for golang
栈和堆都是内存区域。栈用于存放函数调用过程中的局部变量由系统自动分配和回收访问速度快但空间较小。堆用于存放生命周期较长或需要动态分配的数据空间较大但分配和回收成本较高通常需要垃圾回收器管理。在 Go 语言中变量最终放在栈还是堆并不由new或make决定而是由编译器的逃逸分析决定。如果变量在函数外部仍然被引用则会发生逃逸被分配到堆上否则通常分配在栈上。Go 的 GC 主要扫描堆而不是栈