我有一个类似于递归目录树的数据结构,例如:
type tree struct {
name string
subs []*tree
}
这个数据结构是递归的,这意味着subs可以包含树结构,它们本身包含subs,依此类推。
现在,R表示这样的树结构,如果我这样做:R.subs = nil
,子树项会被垃圾收集,或者我必须写这样的东西:
func (t *tree) Truncate() {
for _, s := range t.subs {
s.Truncate()
}
t.subs = nil
}
一般来说,我的问题是Go如何知道不再需要某些对象并且有资格进行垃圾回收?
非常感谢。