Initialisation des structures imbriquées dans Go [duplicata]
Lorsque vous travaillez avec des structures imbriquées dans Go, vous pouvez rencontrer une erreur si vous tentez d'initialiser la structure principale utilisant une interface comme type de structure interne. Pour résoudre ce problème, vous pouvez envisager plusieurs approches :
Duplication du type de structure anonyme
Si la structure interne est une structure anonyme, vous pouvez initialiser la structure principale struct en spécifiant explicitement à nouveau le type de la structure interne pendant la construction :
type DetailsFilter struct { Filter struct { Name string ID int } } df := DetailsFilter{Filter: struct { Name string ID int }{Name: "myname", ID: 123}}
Initialisation après Création
Vous pouvez également créer la structure principale avec des valeurs nulles, puis attribuer des valeurs à la structure imbriquée :
df := DetailsFilter{} df.Filter.Name = "myname2" df.Filter.ID = 321
Utiliser un type de structure anonyme nommé
Vous pouvez éviter l'erreur initiale en définissant la structure interne comme un type nommé au lieu d'un type anonyme struct :
type Filter struct { Name string ID int } type DetailsFilter struct { Filter Filter }
Ensuite, vous pouvez initialiser la structure principale comme suit :
df := DetailsFilter{Filter: Filter{Name: "myname", ID: 123}}
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!