Heim > Backend-Entwicklung > Golang > Kann Go Reflection einen Typ aus seinem String-Namen ableiten?

Kann Go Reflection einen Typ aus seinem String-Namen ableiten?

Linda Hamilton
Freigeben: 2024-12-23 13:02:11
Original
857 Leute haben es durchsucht

Can Go Reflection Derive a Type from its String Name?

Reflexion: Typdarstellung aus seinem Namen erhalten

Frage:

Ist es in Go möglich, den Typ abzuleiten? Darstellung eines Datentyps anhand seines Namens mit Reflexion?

Antwort:

Die Antwort auf diese Frage hängt vom Kontext ab, in dem sie gestellt wird.

Zur Laufzeit:

Wenn der Typname zur Laufzeit als String verfügbar ist, ist dies nicht möglich um seine Typdarstellung mithilfe von Reflexion zu erhalten. Dies liegt daran, dass Typen, auf die nicht direkt verwiesen wird, möglicherweise nicht in der endgültigen ausführbaren Binärdatei enthalten sind.

Zum Zeitpunkt der „Codierung“:

Allerdings, wenn der Typname lautet Während der Codierungs- oder Codegenerierungsphase bekannt ist, ist es möglich, seine Typdarstellung zu erhalten, ohne eine Variable davon zu erstellen Typ.

Dies kann erreicht werden, indem der Typzeiger des Typs abgerufen, ein typisierter Nullzeigerwert erstellt und dann Type.Elem() verwendet wird, um zum Basistyp des Zeigers zu navigieren. Der resultierende Typdeskriptor ist identisch mit dem, der durch Erstellen und Reflektieren einer Variablen dieses Typs erhalten wird.

Beispiel:

t := reflect.TypeOf((*YourType)(nil)).Elem()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKann Go Reflection einen Typ aus seinem String-Namen ableiten?. 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