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

Wie kann ich in Go zwischen verschiedenen Strukturtypen konvertieren?

DDD
Freigeben: 2024-10-27 04:25:03
Original
897 Leute haben es durchsucht

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

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

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!

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