Heim >Backend-Entwicklung >Golang >Wie konvertiere ich einen *foo-Zeiger in interface{} und zurück in Go?
Konvertieren von Strukturzeigern in eine Schnittstelle{}
Gegebene unveränderliche Typdeklarationen wie die folgenden:
type foo struct {} func bar(baz interface{}) {}
Where baz muss innerhalb von bar wieder in einen *foo-Zeiger konvertiert werden. In diesem Artikel wird erläutert, wie &foo{} in eine Schnittstelle{} konvertiert wird. zur Verwendung als Parameter in bar.
Cast &foo Zeiger auf interface{}**
Konvertieren eines *foo-Zeigers in eine Schnittstelle{ } ist unkompliziert:
f := &foo{} bar(f) // Every type implements interface{}.
Konvertieren Schnittstelle{} Zurück zu foo*
Um den *foo-Wert von der Schnittstelle{} abzurufen, stehen zwei Ansätze zur Verfügung:
Typzusicherung:
func bar(baz interface{}) { f, ok := baz.(*foo) if !ok { // baz is not a *foo } // f is a *foo }
Typ Schalter:
func bar(baz interface{}) { switch f := baz.(type) { case *foo: // f is a *foo default: // f is some other type } }
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen *foo-Zeiger in interface{} und zurück in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!