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

Wie initialisiere ich verschachtelte Strukturen in Go mithilfe der Literalsyntax richtig?

DDD
Freigeben: 2024-12-21 06:24:21
Original
826 Leute haben es durchsucht

How to Properly Initialize Nested Structs in Go Using Literal Syntax?

Initialisierung verschachtelter Strukturen in literaler Syntax

In Go kann es schwierig sein, verschachtelte Strukturen mithilfe literaler Syntax zu initialisieren. Dieses Problem tritt auf, wenn versucht wird, auf Felder einer übergeordneten Struktur zuzugreifen und gleichzeitig Werte für verschachtelte Strukturmitglieder bereitzustellen.

Berücksichtigen Sie beispielsweise die folgenden Strukturen:

type A struct {
    MemberA string
}

type B struct {
    A A
    MemberB string
}
Nach dem Login kopieren

Beim Initialisieren einer Instanz von Struktur B Bei Verwendung der Literalsyntax ist zu beachten, dass die anonyme Struktur A während der Initialisierung nur unter ihrem Typnamen bekannt ist. Seine Mitglieder und Funktionen werden erst verfügbar gemacht, nachdem die Instanz vorhanden ist.

Um das MemberA-Feld der übergeordneten Struktur zu initialisieren, müssen Sie eine gültige Instanz von A bereitstellen:

b := B{
    A: A{MemberA: "test1"},
    MemberB: "test2",
}
Nach dem Login kopieren

Der Compilerfehler „ Unbekanntes B-Feld „MemberA“ im Strukturliteral“ tritt auf, weil das MemberA-Feld immer noch Teil der anonymen Struktur A ist und noch nicht für B verfügbar gemacht wurde struct.

Zusammenfassend lässt sich sagen, dass es zum Initialisieren verschachtelter Strukturen in literaler Syntax erforderlich ist, eine gültige Instanz der übergeordneten Struktur bereitzustellen, wenn den verschachtelten Strukturmitgliedern Werte zugewiesen werden, wie oben im korrigierten Initialisierungscode gezeigt.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich verschachtelte Strukturen in Go mithilfe der Literalsyntax richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage