Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in Go zwischen verschiedenen Strukturtypen konvertieren?

Wie kann ich in Go zwischen verschiedenen Strukturtypen konvertieren?

DDD
DDDOriginal
2024-10-27 04:25:03764Durchsuche

How can I convert between different struct types in Go?

Strukturkonvertierung in Go

In Go bieten Strukturen eine praktische Möglichkeit, Daten mit benannten Feldern darzustellen. Es können jedoch Situationen auftreten, in denen Strukturen verschiedener Typen konvertiert werden müssen.

Betrachten Sie das folgende Beispiel:

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

type B struct {
    A
    c string
    // more fields
}</code>

Angenommen, Sie haben eine Variable vom Typ A und möchten sie in einen Typ konvertieren B. Gibt es in Go einen integrierten Mechanismus für diese Konvertierung?

Die Antwort lautet „Ja“. In Go können Strukturfelder eingebettet werden, was eine einfache Konvertierung zwischen Strukturen ermöglicht. Im obigen Beispiel bettet B A ein, was bedeutet, dass es alle Felder von A als eigene Felder enthält.

Um eine Variable vom Typ A in Typ B umzuwandeln, können Sie einfach den Wert von A zuweisen eingebettetes A-Feld in B. So geht's:

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

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

Dieser Code weist den Wert von structA dem eingebetteten A-Feld in structB zu und konvertiert structA effektiv in Typ B.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go zwischen verschiedenen Strukturtypen konvertieren?. 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