Heim > Backend-Entwicklung > Golang > Wie kann ich zur Kompilierungszeit eine Go-Typ-Darstellung aus seinem Namen erhalten?

Wie kann ich zur Kompilierungszeit eine Go-Typ-Darstellung aus seinem Namen erhalten?

Susan Sarandon
Freigeben: 2024-12-29 19:11:11
Original
1003 Leute haben es durchsucht

How Can I Get a Go Type Representation from Its Name at Compile Time?

Typdarstellung aus dem Namen in Go with Reflection abrufen

Frage:

Wie kann man Erhalten Sie mithilfe der Go-Reflexion eine Typdarstellung aus seinem Namen Bibliotheken?

Antwort:

Das Verständnis dieser Frage hängt von ihrer Interpretation ab. Es gibt im Wesentlichen zwei Perspektiven:

Laufzeitunzugänglichkeit:

Wenn der Name des Typs zur Laufzeit als Zeichenfolge bereitgestellt wird, kann er nicht in eine Typdarstellung konvertiert werden. Typen, auf die nicht explizit verwiesen wird, sind möglicherweise nicht in der endgültigen ausführbaren Binärdatei enthalten, sodass zur Laufzeit nicht auf sie zugegriffen werden kann.

Zugänglichkeit zur „Codierungszeit“:

Allerdings während Bei der Codierung (Erstellung oder Generierung von Quellcode) ist es möglich, dies zu erreichen, ohne eine Variable des angegebenen Typs zu erstellen und aufzurufen Reflect.TypeOf().

Erhalten des eingebetteten Typs:

Man kann einen typisierten Nullzeigerwert verwenden und vom Reflect.Type-Deskriptor des Zeigers zum wechseln Basis- oder Elementtyp des Zeigers mit Type.Elem().

Beispiel:

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

Dieser Ansatz ergibt einen Typdeskriptor (t), der mit dem Deskriptor (t2) identisch ist, der durch Erstellen einer Variablen erhalten wurde von der Art und Verwendung reflektieren.TypeOf():

var x YourType
t2 := reflect.TypeOf(x)

fmt.Println(t, t2)
fmt.Println(t == t2)
Nach dem Login kopieren

Ausgabe:

main.YourType main.YourType
true
Nach dem Login kopieren

Schlussfolgerung:

Beim Abrufen des Typs Die Darstellung ist zur Laufzeit aufgrund von Kompilierungseinschränkungen nicht möglich. Sie ist jedoch während der Codierungszeit möglich, indem über den typisierten Nullzeiger auf den eingebetteten Typ zugegriffen wird Ansatz.

Das obige ist der detaillierte Inhalt vonWie kann ich zur Kompilierungszeit eine Go-Typ-Darstellung aus seinem Namen erhalten?. 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