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
Vous devez vous connecter pour publier un commentaire.
Pourquoi deviner (correctement) quand il y a une partie de la documentation ?
Remarque qu'il n'y a aucun moyen de définir une structure de la valeur à
nil
(mais vous pouvez définir la valeur d'un pointeur vers une struct pournil
).OriginalL'auteur Denys Séguret