Heim >Backend-Entwicklung >Golang >Wie kann ich den Reflect.Type einer Schnittstelle in Go abrufen?

Wie kann ich den Reflect.Type einer Schnittstelle in Go abrufen?

Susan Sarandon
Susan SarandonOriginal
2024-12-18 14:24:16579Durchsuche

How Can I Get the reflect.Type of an Interface in Go?

Abrufen des Reflect.Type einer Schnittstelle

Problem:

Um festzustellen, ob ein bestimmter Typ eine Schnittstelle mithilfe des Reflect-Pakets implementiert, Ein Reflect.Type muss an Reflect.Type.Implements() übergeben werden. Allerdings kann es schwierig sein, einen solchen Typ zu erhalten, insbesondere für nicht initialisierte Schnittstellentypen.

Lösung:

Um den Reflect.Type einer Schnittstelle zu erhalten, verwenden Sie einen der folgenden Ansätze:

  1. Verwenden von Elem() Methode:

    var err error
    t := reflect.TypeOf(&err).Elem()
  2. In einer Zeile:

    t := reflect.TypeOf((*error)(nil)).Elem()

Bei beiden Methoden ist die Die Methode Elem() wird verwendet, um den tatsächlichen Typ der Schnittstelle abzurufen (*Fehler in diesem Fall) und den erforderlichen Reflect.Type für die weitere Verarbeitung bereitzustellen.

Das obige ist der detaillierte Inhalt vonWie kann ich den Reflect.Type einer Schnittstelle in Go abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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