Initialisierung verschachtelter Strukturen in Go [Duplikat]
Beim Arbeiten mit verschachtelten Strukturen in Go kann es beim Initialisierungsversuch zu einem Fehler kommen die Hauptstruktur unter Verwendung einer Schnittstelle als Typ der inneren Struktur. Um dieses Problem anzugehen, können Sie mehrere Ansätze in Betracht ziehen:
Duplizieren des anonymen Strukturtyps
Wenn die innere Struktur eine anonyme Struktur ist, können Sie die Hauptstruktur initialisieren struct durch erneute explizite Angabe des Typs der inneren Struktur während der Konstruktion:
type DetailsFilter struct { Filter struct { Name string ID int } } df := DetailsFilter{Filter: struct { Name string ID int }{Name: "myname", ID: 123}}
Initializing After Erstellung
Alternativ können Sie die Hauptstruktur mit Nullwerten erstellen und anschließend der verschachtelten Struktur Werte zuweisen:
df := DetailsFilter{} df.Filter.Name = "myname2" df.Filter.ID = 321
Verwenden eines benannten anonymen Strukturtyps
Sie können den anfänglichen Fehler vermeiden, indem Sie die innere Struktur als benannten Typ statt als anonymen Typ definieren struct:
type Filter struct { Name string ID int } type DetailsFilter struct { Filter Filter }
Dann können Sie die Hauptstruktur wie folgt initialisieren:
df := DetailsFilter{Filter: Filter{Name: "myname", ID: 123}}
Das obige ist der detaillierte Inhalt vonWie initialisiere ich verschachtelte Strukturen in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!