如何释放存储空间? [重复]

This question already has an answer here:

I've started to learn Go, and found something I'm not able to find info about.

For example, if I'm making my own list structure

type elem struct {
    prev  *elem
    next  *elem
    value string
}

And adding new elements to it with

Current.next = &elem{}

How should I remove them? I mean, how can I remove data of elem from memory, not just from the list?

</div>

Go has garbage collection. It will scan for data that has no pointer to it and remove it from heap (Garbage collector is running beside your program). The only thing you should do is:

Current.next = nil

Your elem{} will be removed from memory eventually after you remove all pointers to it (It's not deterministic. Can't tell exactly when elem{} will be released). There are different implementations of garbage collection; Go's implementation may change at any time.

If Current goes out of scope, you don't even need to set next to nil.