Kopieren von Strukturen mit identischen Mitgliedern und unterschiedlichen Typen
In Go kann es vorkommen, dass zwei Strukturen dieselben Mitglieder haben, diese aber haben verschiedene Typen. Betrachten Sie zum Beispiel die folgenden Strukturdefinitionen:
type Common struct { Gender int From string To string } type Foo struct { Id string Name string Extra Common } type Bar struct { Id string Name string Extra Common }
Können wir bei einer gegebenen Instanz von Foo (benannt foo) und einer Instanz von Bar (benannt bar) die Werte von foo nach bar kopieren?
Lösung mit Typkonvertierung
Da die zugrunde liegenden Typen von Foo und Bar bis auf Struktur-Tags identisch sind, können wir dies tun Nutzen Sie eine Typkonvertierung, um den Typ zu ändern. Dies umfasst die folgenden Schritte:
foo := Foo{Id: "123", Name: "Joe"} bar := Bar(foo)
Playground Beispiel
Sie können diese Lösung auf dem Go Playground testen:
https://go.dev/play/p/j5jL1XFs-zG
Hinweis: Die Konvertierung funktioniert nur, wenn die zugrunde liegenden Typen bis auf Struktur-Tags identisch sind. Komplexe Typen wie Karten, Slices oder Arrays innerhalb einer Struktur erfordern einen detaillierteren Ansatz zum Kopieren von Werten.
Das obige ist der detaillierte Inhalt vonKann die Typkonvertierung von Go Werte zwischen Strukturen mit identischen Mitgliedern, aber unterschiedlichen Typen kopieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!