如果我实现这样的队列......package mainimport( "fmt")func PopFront(q *[]string) string { r := (*q)[0] *q = (*q)[1:len(*q)] return r}func PushBack(q *[]string, a string) { *q = append(*q, a)}func main() { q := make([]string, 0) PushBack(&q, "A") fmt.Println(q) PushBack(&q, "B") fmt.Println(q) PushBack(&q, "C") fmt.Println(q) PopFront(&q) fmt.Println(q) PopFront(&q) fmt.Println(q) }...我最终得到一个["A", "B", "C"]没有指向前两个元素的切片的数组。由于切片的“开始”指针永远不会递减(AFAIK),因此永远无法访问这些元素。Go 的垃圾收集器足够聪明来释放它们吗?
- 3 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消