Heim > Backend-Entwicklung > Golang > Wie kann ich eine Struktur mit gleichwertigen Mitgliedern, aber unterschiedlichen Typen in Go duplizieren?

Wie kann ich eine Struktur mit gleichwertigen Mitgliedern, aber unterschiedlichen Typen in Go duplizieren?

Linda Hamilton
Freigeben: 2024-12-11 18:47:14
Original
747 Leute haben es durchsucht

How Can I Duplicate a Struct with Equivalent Members but Dissimilar Types in Go?

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

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage