Heim > Backend-Entwicklung > Golang > Wie initialisiere ich verschachtelte Strukturen in Go richtig?

Wie initialisiere ich verschachtelte Strukturen in Go richtig?

Linda Hamilton
Freigeben: 2025-01-03 18:22:39
Original
404 Leute haben es durchsucht

How to Properly Initialize Nested Structs in Go?

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}}
Nach dem Login kopieren

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
Nach dem Login kopieren

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
}
Nach dem Login kopieren

Dann können Sie die Hauptstruktur wie folgt initialisieren:

df := DetailsFilter{Filter: Filter{Name: "myname", ID: 123}}
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage