当替换结构的指针时,GC如何表现

时间:2016-01-12 17:58:25

标签: go garbage-collection

我正在学习Go和我正在阅读图书馆的例子。我发现一些例子正在使用:

type MyType struct {
  Code string
  //...
}


func main() {
  myType := &MyType{...}
  //...
  myType = &MyType{...}
}

基本上他们正在重用变量。我知道&MyType{..}返回一个指针,稍后我可以替换该指针。先前指出的记忆会发生什么。 GC会回收那段记忆还是会浪费那段记忆。也许这是一个愚蠢的问题,除了我试图学习Go来构建性能API之外我什么都不关心。)

1 个答案:

答案 0 :(得分:0)

垃圾收集器将回收内存。

如果要替换结构,可以这样做:

func main() {
    myType := &MyType{...}
    //...
    *myType = MyType{...}
}

但差异可能会微不足道。