这个问题在这里已有答案:
我开始学习Go,发现了一些我无法找到的信息。
例如,如果我正在创建自己的列表结构
type elem struct {
prev *elem
next *elem
value string
}
并添加新的元素
Current.next = &elem{}
我应该如何删除它们?我的意思是,如何从内存中删除元素数据,而不仅仅是从列表中删除?
Go有垃圾收集。它将扫描没有指针的数据并将其从堆中删除(垃圾收集器正在您的程序旁边运行)。你唯一应该做的是:
Current.next = null
你移除所有指针后,你的elem{}
最终将从内存中移除(这不是确定性的。无法准确判断何时释放elem{}
)。垃圾收集有不同的实现方式; Go的实施可能随时改变。
如果Current
超出范围,则不需要将next
设置为null
。