首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在go中释放内存?

如何在go中释放内存?
EN

Stack Overflow用户
提问于 2017-12-26 21:17:14
回答 1查看 16.3K关注 0票数 5

我已经开始学习围棋了,我发现了一些我无法找到的信息。

例如,如果我创建自己的列表结构

代码语言:javascript
运行
复制
type elem struct {
    prev  *elem
    next  *elem
    value string
}

并使用以下命令添加新元素

代码语言:javascript
运行
复制
Current.next = &elem{}

我应该如何删除它们?我的意思是,我如何从内存中删除elem的数据,而不仅仅是从列表中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-26 22:22:37

Go有垃圾回收功能。它将扫描没有指针的数据,并将其从堆中删除(垃圾收集器在您的程序旁边运行)。你唯一需要做的就是:

代码语言:javascript
运行
复制
Current.next = nil

你的elem{}最终会在你移除所有指向它的指针后被从内存中移除(它不是确定性的。不知道elem{}将在什么时候发布)。垃圾收集有不同的实现;Go的实现随时可能改变。

如果Current超出了作用域,您甚至不需要将next设置为nil

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47979203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档