Maison >développement back-end >Golang >Comment initialiser des champs de structure imbriqués dans Go à l'aide de références de champ ?
Initialisation de structure imbriquée avec des références de champ
La tâche consiste à initialiser une structure imbriquée avec des valeurs littérales tout en définissant un champ appartenant à une structure parent . Voici un exemple :
type A struct { MemberA string } type B struct { A MemberB string }
Les tentatives d'initialisation de MemberA directement dans un littéral de structure, comme indiqué ci-dessous, échoueront :
b := B { MemberA: "test1", MemberB: "test2", } fmt.Printf("%+v\n", b)
Cela entraîne l'erreur : "champ B inconnu" MemberA' dans la structure littérale."
Pour initialiser MemberA correctement, vous devez fournir une instance valide de la structure parent, A, comme on le voit dans ce code :
b := B { A: A{MemberA: "test1"}, // Initialize the parent struct instance MemberB: "test2", }
Le message d'erreur du compilateur "Champ B inconnu 'MemberA' dans la structure littérale" indique que MemberA n'est pas directement un champ connu de B. Au lieu de cela, il appartient au type A intégré. Lors de l'initialisation de la structure B, l'instance anonyme A n'est connue que sous le nom de type A, et ses membres ne sont pas visibles en dehors de l'instance jusqu'à sa création.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!