Heim > Backend-Entwicklung > Golang > Wie kann ich in Go ein Segment mit Strukturen in ein Segment mit leeren Schnittstellen konvertieren?

Wie kann ich in Go ein Segment mit Strukturen in ein Segment mit leeren Schnittstellen konvertieren?

DDD
Freigeben: 2024-12-05 10:07:15
Original
381 Leute haben es durchsucht

How Can I Convert a Slice of Structs to a Slice of Empty Interfaces in Go?

Konvertieren eines Struktursegments in ein Segment leerer Schnittstelle

Das Zuweisen eines Struktursegments zu einem Segment leerer Schnittstellen ist aufgrund des Typs nicht einfach Inkompatibilität, wie im folgenden Code zu sehen:

type MyStruct struct {
    // ...
}

var src []*MyStruct
var dest []interface{}
dest = src  // Compilation error
Nach dem Login kopieren

Dieser Fehler tritt auf, weil der Compiler identifiziert die beiden Typen als inkompatibel. Um dieses Problem zu lösen, muss man jedes Element manuell kopieren:

for _, s := range src {
    dest = append(dest, s)
}
Nach dem Login kopieren

Obwohl es mühsam ist, Elemente einzeln zu kopieren, ist es notwendig, da das Umwandeln einer Struktur in eine Schnittstelle das Einschließen der Struktur in einen Schnittstellenzeiger und -typ erfordert Deskriptor. Durch das separate Kopieren jedes Elements wird sichergestellt, dass dieser Umhüllungsprozess korrekt durchgeführt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go ein Segment mit Strukturen in ein Segment mit leeren Schnittstellen 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