Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man zwischen Go-Strukturen mit unterschiedlichen Feldern?

Wie konvertiert man zwischen Go-Strukturen mit unterschiedlichen Feldern?

Linda Hamilton
Linda HamiltonOriginal
2024-10-28 04:14:02813Durchsuche

 How to Convert Between Go Structs with Different Fields?

Strukturkonvertierung in Go

F: Ich habe zwei Strukturen mit unterschiedlichen Feldern. Wie kann ich eine Variable vom Typ A in Typ B konvertieren, wobei A nur wesentliche Felder und B zusätzliche Felder enthält? Ist es möglich, diese Konvertierung direkt durchzuführen oder muss ich Felder manuell kopieren?

A: In Go kann die Strukturkonvertierung durch Nutzung der Einbettungsfunktion durchgeführt werden. Dadurch können Sie die Felder einer Struktur in einer anderen verschachteln. In Ihrem Fall haben Sie beispielsweise eine Struktur A mit zwei Feldern (a und b) und eine Struktur B, die Struktur A einbettet und zusätzliche Felder (c und möglicherweise weitere) hinzufügt.

Zur Konvertierung von A zu B können Sie einfach eine B-Struktur erstellen und eine Instanz von A darin einbetten:

<code class="go">type A struct {
    a int
    b string
}

type B struct {
    A
    c string
}

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

    // convert to type B
    structB := B{A: structA}

    // access the fields of structB
    fmt.Println(structB.a, structB.b, structB.c) // Output: 42 foo (additional value)
}</code>

Das obige ist der detaillierte Inhalt vonWie konvertiert man zwischen Go-Strukturen mit unterschiedlichen Feldern?. 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