Я пробовал пойти в течение некоторого времени, и этот вопрос продолжает прослушивать меня. Скажем, я создаю несколько большой набор данных на кусочке (скажем, 10 миллионов 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? Это проблема и как с ней бороться?