Heim > Backend-Entwicklung > Golang > Kann die Typkonvertierung von Go Werte zwischen Strukturen mit identischen Mitgliedern, aber unterschiedlichen Typen kopieren?

Kann die Typkonvertierung von Go Werte zwischen Strukturen mit identischen Mitgliedern, aber unterschiedlichen Typen kopieren?

Patricia Arquette
Freigeben: 2024-12-13 03:39:09
Original
471 Leute haben es durchsucht

Can Go's type conversion copy values between structs with identical members but different types?

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

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:

  1. Deklarieren Sie eine Variable vom Typ Foo mit dem Namen foo.
  2. Deklarieren Sie eine Variable vom Typ Bar mit dem Namen bar.
  3. Weisen Sie den Wert von foo zu zu bar mithilfe einer Typkonvertierung.
foo := Foo{Id: "123", Name: "Joe"}
bar := Bar(foo)
Nach dem Login kopieren

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!

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