我正在学习 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/