次のようなコードを見ると、少し混乱します。
bigBox := &BigBox{}
bigBox.BubbleGumsCount = 4 // correct...
bigBox.SmallBox.AnyMagicItem = true // also correct
bigBox := &BigBox{}
なぜ、またはいつ、代わりにやりたいのbigBox := BigBox{}
ですか? ある意味より効率的ですか?
コードサンプルはhereから取得されました。
サンプル No.2:
package main
import "fmt"
type Ints struct {
x int
y int
}
func build_struct() Ints {
return Ints{0,0}
}
func build_pstruct() *Ints {
return &Ints{0,0}
}
func main() {
fmt.Println(build_struct())
fmt.Println(build_pstruct())
}
サンプル番号 3: (この例では、BigBox を構造体として直接使用せずに、なぜ &BigBox を使用するのでしょうか?)
func main() {
bigBox := &BigBox{}
bigBox.BubbleGumsCount = 4
fmt.Println(bigBox.BubbleGumsCount)
}
build_struct バリアントの代わりに build_pstruct を呼び出す理由はありますか? それが私たちがGCを持っている理由ではありませんか?