Struct la valeur Zéro dans golang

Voici un exemple de code:

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")
}

Résultats:

&main.A{Name:""}
ele are called
&main.A{Name:""}
ele2 are called

Il ressemble à ceux qui sont de la même chose au sujet de var ele A et ele2 := A{}

Donc, la structure de la valeur Zéro n'est pas nil , mais une struct que tous les biens sont initialisés à la valeur Zéro. Est le deviner ?

Si l'hypothèse est juste, alors la nature de var ele A et ele2 := A{} sont le même droit ? Je ne suis pas sûr.

OriginalL'auteur soapbar | 2015-02-20