Ho provato Go da un po 'di tempo e questa domanda continua a infastidirmi. Supponiamo che io costruisca un dataset piuttosto grande in una porzione (ad esempio, 10 milioni di int64).Does Go non ha un modo reale per ridurre una fetta? È un problema?
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))
}
Ma poi decido che non voglio la maggior parte di loro in modo che voglio finire con una fetta di appena il 10 di quelli. Ho provato entrambe le sezioni e delete techniques on Go's wiki ma nessuno di loro sembra ridurre la capacità della sezione.
Quindi questa è la mia domanda: fa Go ha nessun vero modo di contrazione della capacità di una fetta che sarebbe simile a realloc()
-ing con un argomento taglia più piccola rispetto a chiamata precedente sullo stesso puntatore in C? È un problema e come si dovrebbe affrontarlo?