这是示例代码:
package main
import (
"fmt"
)
type A struct {
Name string
}
func (this *A) demo(tag string) {
fmt.Printf("%#v\n", this)
fmt.Println(tag)
}
func main() {
var ele A
ele.demo("ele are called")
ele2 := A{}
ele2.demo("ele2 are called")
}
Run Code Online (Sandbox Code Playgroud)
运行结果:
&main.A{Name:""}
ele are called
&main.A{Name:""}
ele2 are called
Run Code Online (Sandbox Code Playgroud)
它看起来像那些是相同的约var ele A和ele2 := A{}
因此,struct的Zero值不是nil,而是一个结构,所有属性都被初始化为零值.猜对了吗?
如果猜测是正确的,那么的自然var ele A和ele2 := A{}是一样的吧?我不确定.