Dynamische Funktionserstellung mit Reflexion in Go
Problem:
Kann eine neue Funktion sein dynamisch erstellt und mithilfe der Go-Reflexion an eine Schnittstelle gebunden Fähigkeiten?
Herausforderung:
Um Schnittstellen im RPC-Stil mithilfe der Go-Schnittstellen zu implementieren, ist es notwendig, Reflektion zu verwenden, um:
Reflektion bietet jedoch keine direkte Möglichkeit, einen Wert zu erstellen, der eine Schnittstelle implementiert mit benutzerdefinierten Funktionen.
Lösung:
Leider ist es zum Zeitpunkt der ersten Formulierung der Frage nicht möglich, eine neue Funktion mit angehängten Methoden ausschließlich durch Reflektion in Go zu erstellen. Obwohl es möglich sein mag, Hacks mithilfe des unsicheren Pakets zu untersuchen, wäre dies ein mühsames Unterfangen.
Alternative Ansätze:
Um das umfassendere Problem anzugehen, das der Benutzer versucht Zur Lösung könnten alternative Ansätze untersucht werden, wie zum Beispiel:
Hinweis:
Das ist erwähnenswert Mit der Einführung von Go 1.5 wurden Reflection.FuncOf und Reflect.MakeFunc hinzugefügt. Diese Funktionen bieten die Möglichkeit, Funktionen zu erstellen und an Schnittstellen zu binden und so die in der Frage beschriebene ursprüngliche Herausforderung zu bewältigen.
Das obige ist der detaillierte Inhalt vonKann Go's Reflection dynamische Funktionen erstellen und an Schnittstellen binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!