假如我有一个slice,然后其中若干个元素地址被引用,那么其他的元素会被垃圾回收吗
```
ss := []string{"1", "2", "3", "4"}
ref := &ss[2]
```
例如这样的一个操作,gc时ss会被垃圾回收吗
https://golang.google.cn/pkg/reflect/#SliceHeader
```go
type SliceHeader struct {
Data uintptr
Len int
Cap int
}
```
这是slice的内部结构,我的理解是slice的data指针只有一个,表示底层数组,在gc的时候如果检测到data有被引用就不会被回收,gc最左管理到这个data数组,他不会管到数组的某个元素,不过你的例子是string slice,对于string感觉比较特殊,可以写个例子测试一下,开启gctrace看看结果
#4
更多评论