当我看到以下代码时,我有点困惑:
bigBox := &BigBox{}
bigBox.BubbleGumsCount = 4 // correct...
bigBox.SmallBox.AnyMagicItem = true // also correct
为什么,或者什么时候,我想做bigBox := &BigBox{}
而不是bigBox := BigBox{}
?它在某种程度上更有效吗?
代码示例取自这里。
样品 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_pstruct 而不是 build_struct 变体?这不是我们有GC的原因吗?