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)
}
出力:[<nil> <nil> <nil> <nil> <nil> 0xc010035160 0xc010035170 0xc010035180 0xc010035190 0xc0100351a0]
私がしたいのは、ポインターとして保存された5つの UselessStructs にメモリを事前に割り当てることです。構造体値 eq のスライスを宣言すると:
mySlice := make([]UselessStruct, 5)
次に、これにより5つの空の構造体が作成されます-追加は空の構造体を置き換えませんが、代わりにスライスに追加し続けるため、最終結果は次のコードになります:
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)
}
は:[{0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0} {0 0}]
スライスを事前に割り当てて埋めるための慣用的な方法は何ですか?