Heim > Backend-Entwicklung > Golang > Wie konvertiere ich einen *foo-Zeiger in interface{} und zurück in Go?

Wie konvertiere ich einen *foo-Zeiger in interface{} und zurück in Go?

Patricia Arquette
Freigeben: 2024-12-02 16:23:12
Original
786 Leute haben es durchsucht

How Do I Convert a *foo Pointer to interface{} and Back in Go?

Konvertieren von Strukturzeigern in eine Schnittstelle{}

Gegebene unveränderliche Typdeklarationen wie die folgenden:

type foo struct {}

func bar(baz interface{}) {}
Nach dem Login kopieren

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

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

Typ Schalter:

func bar(baz interface{}) {
    switch f := baz.(type) {
    case *foo: // f is a *foo
    default: // f is some other type
    }
}
Nach dem Login kopieren

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!

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