Wie preallocate und füllen eine Scheibe von Zeigern in einem go-idiomatische Weg?

http://play.golang.org/p/j-Y0mQzTdP

package main

import "fmt"

type UselessStruct struct {
    a int
    b int
}

func main() {
    mySlice := make([]*UselessStruct, 5)
    for i := 0; i != 5; i++ {
        mySlice = append(mySlice, &UselessStruct{})
    }

    fmt.Println(mySlice)
}

Ausgänge: [<nil> <nil> <nil> <nil> <nil> 0xc010035160 0xc010035170 0xc010035180 0xc010035190 0xc0100351a0]

Was ich tun möchte, ist preallocate Speicher für 5 UselessStructs, gespeichert als Zeiger. Wenn ich erkläre eine Scheibe struct Werte eq:

mySlice := make([]UselessStruct, 5)

dann dies schafft 5 leere Strukturen - Anhängen nicht, ersetzen Sie den leeren Strukturen, sondern hält Sie auf hinzufügen, um die Scheibe, so dass das Endergebnis mit diesem code:

http://play.golang.org/p/zBYqGVO85h

package main

import "fmt"

type UselessStruct struct {
    a int
    b int
}

func main() {
    mySlice := make([]UselessStruct, 5)
    for i := 0; i != 5; i++ {
        mySlice = append(mySlice, UselessStruct{})
    }

    fmt.Println(mySlice)
}

ist: [{0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0}]

Was ist die der go-idiomatischer Weg um preallocate und füllen in Scheiben?

InformationsquelleAutor Dante | 2013-06-03
Schreibe einen Kommentar