Duplizieren von Strukturen mit äquivalenten Mitgliedern und unterschiedlichen Typen
Stellen Sie sich das folgende Szenario vor: Sie haben zwei unterschiedliche Strukturen, Foo und Bar, die jeweils identische Eigenschaften haben Mitglieder, die sich jedoch in ihren zugrunde liegenden Typen unterscheiden. Ihr Ziel ist es, den Inhalt einer Struktur auf die andere zu übertragen.
Bedenken Sie in diesem Fall 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 }
Gegebene Instanzen foo von Foo und bar von Bar, wie Kann bar von foo dupliziert werden?
Lösung: Typkonvertierung
Seit dem Grundprinzip Da die Typen Foo und Bar strukturell gleichwertig sind, kann eine Typkonvertierung verwendet werden, um den Objekttyp zu ändern. Der folgende Code zeigt, wie man einen Foo-Wert mithilfe der Konvertierung in einen Bar-Wert kopiert:
foo := Foo{Id: "123", Name: "Joe"} bar := Bar(foo)
Hinweis zur Typkompatibilität
Es ist wichtig, sich an diese Typkonvertierungstechnik zu erinnern ist nur wirksam, wenn die zugrunde liegenden Typen der Strukturen im Wesentlichen identisch sind, abgesehen von etwaigen Struktur-Tags.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Struktur mit gleichwertigen Mitgliedern, aber unterschiedlichen Typen in Go duplizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!