我已经尝试 Go 一段时间了,这个问题一直困扰着我。假设我在一个切片中构建了一个有点大的数据集(例如,1000 万个 int64)。
package main
import (
"math"
"fmt"
)
func main() {
var a []int64
var i int64;
upto := int64(math.Pow10(7))
for i = 0; i < upto; i++ {
a = append(a, i)
}
fmt.Println(cap(a))
}
但后来我决定我不想要其中的大多数,所以我想最终只得到其中的 10 个。我在 Go 的 wiki 上尝试了切片和删除技术,但似乎都没有降低切片的容量。
所以这就是我的问题:Go 是否没有真正的方法来缩小切片的容量,类似于realloc()
-ing 的大小参数比您之前在 C 中对同一指针的调用中更小?这是一个问题,应该如何处理?