垃圾收集器是否收集堆栈上的变量?
Are variables on stack collected by garbage collector?
我想了解如何释放堆栈变量。它是作为位于堆上的变量进行垃圾回收,还是像 C 语言那样在离开变量作用域后将在内部释放?
分配在堆栈上的变量将在函数分配该变量后被删除returns,因为堆栈指针将恢复到函数调用之前的状态。那里没有 GC 参与。
在Go中,如果栈变量是指向堆上对象的指针,那么一旦函数returns,指针就会被移除,然后GC就可以移除它所指向的对象前提是不存在其他参考资料。
我想了解如何释放堆栈变量。它是作为位于堆上的变量进行垃圾回收,还是像 C 语言那样在离开变量作用域后将在内部释放?
分配在堆栈上的变量将在函数分配该变量后被删除returns,因为堆栈指针将恢复到函数调用之前的状态。那里没有 GC 参与。
在Go中,如果栈变量是指向堆上对象的指针,那么一旦函数returns,指针就会被移除,然后GC就可以移除它所指向的对象前提是不存在其他参考资料。