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
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) }
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!