我正在学习Go,并且正在阅读库中的示例。我发现一些示例正在使用:

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


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

基本上,它们正在重用变量。我知道&MyType{..}返回一个指针,以后我可以替换该指针。先前的指向性内存会发生什么。 GC将回收该内存还是我将浪费该内存。也许这是一个愚蠢的问题,我什么都不关心,但是我正在尝试学习Go构建性能API :)

最佳答案

内存将被垃圾收集器回收。

如果要替换该结构,可以通过以下方式进行操作:

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

差异可能可以忽略不计。

关于go - 替换结构的指针时,GC的行为如何,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34750679/

10-11 22:32
查看更多