如何在Go中清空slice?所有方法及注意事项
大家好,我刚学Go,遇到了一个看似简单但找不到明确解决方案的问题。我有一个slice,在循环中用来累积数据。每次迭代后,我需要完全清空这个slice,以便重新填充。
以下是我做的简化示例:
```go
package main
import "fmt"
func main() {
data := make([]int, 0, 10) // 创建一个初始容量为10的slice
for i := 0; i < 3; i++ {
// 填充数据到slice
for j := 0; j < 5; j++ {
data = append(data, j)
}
fmt.Println("Iteration", i, "data:", data)
// 这里需要在下次迭代前清空data
// data = ??? 这里该写什么?
}
}
```
我试过几种方法:
1. `data = nil` — 这会将slice置零,但不会释放已分配的内存?还是说会释放?
2. `data = data[:0]` — 这