Initialiser imbriquée struct définition dans Golang
Comment initialiser la structure suivante?
type Sender struct {
BankCode string
Name string
Contact struct {
Name string
Phone string
}
}
J'ai essayé:
s := &Sender{
BankCode: "BC",
Name: "NAME",
Contact {
Name: "NAME",
Phone: "PHONE",
},
}
N'a pas fonctionné:
mixture of field:value and value initializers
undefined: Contact
J'ai essayé:
s := &Sender{
BankCode: "BC",
Name: "NAME",
Contact: Contact {
Name: "NAME",
Phone: "PHONE",
},
}
N'a pas fonctionné:
undefined: Contact
Vous devez vous connecter pour publier un commentaire.
Votre
Contact
est un champ de anonyme de type struct. En tant que tel, vous devez répéter la définition de type:Mais dans la plupart des cas, il est préférable de définir un type distinct comme rob74 proposé.
Comment à propos de la définition des deux structures séparément, puis l'incorporation de "Contact" dans "l'Expéditeur"?
si vous faites de cette façon, votre deuxième tentative d'initialisation serait de travailler. En outre, vous pouvez utiliser la rubrique "Contact" sur son propre.
Si vous voulez vraiment utiliser le imbriquée struct, vous pouvez utiliser Ainar-G de la réponse, mais cette version n'est pas assez (et c'est même encore plus laide si les structures sont profondément imbriqués, comme le montre ici), donc je ne le ferais pas, si elle peut être évitée.