Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man Go-Strukturen mit eingebetteten Strukturen?

Wie konvertiert man Go-Strukturen mit eingebetteten Strukturen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-27 08:36:02365Durchsuche

How to Convert Between Go Structs with Embedded Structures?

Konvertierung zwischen Go-Strukturen

In Go bieten Strukturen eine praktische Möglichkeit, Daten zu organisieren und darzustellen. Allerdings kann manchmal eine Konvertierung zwischen Strukturen unterschiedlichen Typs erforderlich sein. Stellen Sie sich das folgende Szenario vor:

Sie haben zwei Strukturen, A und B, wobei A nur wenige wesentliche Felder enthält, während B zusätzliche Felder enthält und alle Felder von A erbt. Sie möchten eine Variable vom Typ A konvertieren in Typ B, ohne die Werte manuell zu kopieren.

Lösung

Go bietet eine einfache Möglichkeit, diese Art der Konvertierung zu erreichen:

<code class="go">package main

type A struct {
    a int
    b string
}

type B struct {
    A
    c string
    // Additional fields
}

func main() {
    // Create a variable of type A
    structA := A{a: 42, b: "foo"}

    // Convert structA to type B using embedded struct
    structB := B{A: structA}
}</code>

In In diesem Beispiel bettet die B-Struktur eine Instanz von A mithilfe ihres anonymen Felds ein. Beim Konvertieren von structA in structB werden die Felder von structA automatisch den entsprechenden Feldern in structB zugewiesen, einschließlich des c-Felds, das in A nicht vorhanden war. Dadurch können Sie mühelos eine vollständige B-Struktur aus einer vorhandenen A-Variablen erstellen.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Go-Strukturen mit eingebetteten Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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