我已经开始学习围棋了,我发现了一些我无法找到的信息。
例如,如果我创建自己的列表结构
type elem struct {
prev *elem
next *elem
value string
}并使用以下命令添加新元素
Current.next = &elem{}我应该如何删除它们?我的意思是,我如何从内存中删除elem的数据,而不仅仅是从列表中?
发布于 2017-12-26 22:22:37
Go有垃圾回收功能。它将扫描没有指针的数据,并将其从堆中删除(垃圾收集器在您的程序旁边运行)。你唯一需要做的就是:
Current.next = nil你的elem{}最终会在你移除所有指向它的指针后被从内存中移除(它不是确定性的。不知道elem{}将在什么时候发布)。垃圾收集有不同的实现;Go的实现随时可能改变。
如果Current超出了作用域,您甚至不需要将next设置为nil。
https://stackoverflow.com/questions/47979203
复制相似问题