私はしばらく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()、Cの同じポインターに対する以前の呼び出しよりも小さいサイズの引数を使用して、スライスの容量を縮小する実際の方法はありませんか? それは問題であり、どのように対処する必要がありますか?