Gehen tut haben keine wirkliche Möglichkeit zu schrumpfen Scheibe? Ist das ein Problem?

Ich habe versucht, Gehen für einige Zeit, und diese Frage hält mich nervt. Sagen wir ich Baue ein etwas großes dataset in eine Scheibe (sagen wir, 10 Millionen int64s).

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))
}

Aber dann habe ich entscheiden, dass ich nicht wollen, dass die meisten von Ihnen, so will ich bis zum Ende mit einer Scheibe nur 10 von denen. Ich habe versucht, sowohl das schneiden und löschen von Techniken, die auf Go ' s wiki aber keiner von Ihnen scheinen zur Verringerung der slice-Fähigkeit.

Also das ist meine Frage: Gehen tut hat keine wirkliche Möglichkeit, schrumpft die Kapazität von einer Scheibe, die ähnlich realloc()-ing mit einer kleineren Größe als argument in Ihren vorherigen Anruf auf den gleichen Zeiger in C? Ist das ein Problem und wie sollte man damit umgehen?

InformationsquelleAutor justinas | 2013-05-25
Schreibe einen Kommentar