Heim > Backend-Entwicklung > Golang > Konvertieren Sie func in einen String in Golang

Konvertieren Sie func in einen String in Golang

王林
Freigeben: 2024-02-10 11:30:19
nach vorne
778 Leute haben es durchsucht

golang 中将 func 转换为字符串

php-Editor Xigua wird Ihnen in diesem Artikel vorstellen, wie Sie func in string in Golang konvertieren. In Golang kann die Konvertierung von Func in String auf einige Herausforderungen stoßen, da der Func-Typ die Konvertierung in String in Golang nicht direkt unterstützt. Dieses Ziel können wir jedoch erreichen, indem wir die Reflexionsfunktion sowie einige andere Techniken nutzen. Als nächstes werden wir detailliert vorstellen, wie dieser Konvertierungsprozess in Golang durchgeführt wird, damit Sie diese Technologie besser verstehen und anwenden können. Lass uns einen Blick darauf werfen!

Frageninhalt

Ich habe einige Funktionen in Variablen gespeichert, die ich in String-Literale konvertieren muss:

testfunc := func(orgid int64) bool {
    return false
}
Nach dem Login kopieren

Das erwartete Ergebniszeichenfolgenliteral lautet wie folgt:

resultstr := `func(orgid int64) bool {
    return false
}`
Nach dem Login kopieren

Das habe ich versucht:

testfuncstr := reflect.valueof(testfunc).string()
Nach dem Login kopieren

Aber das bringt mir nur den folgenden Text:

"<func(int64) bool Value>",
Nach dem Login kopieren

Workaround

Wie @BurakSerdar sagte: Go ist keine interpretierte Sprache, sondern eine kompilierte Sprache, daher ist das, was Sie tun können, ziemlich begrenzt. reflect ist ein leistungsstarkes Paket – Sie können den Funktionsnamen, die Anzahl der Funktionsargumente und sogar den Aufrufstapel (der für die Protokollierung praktisch ist) abrufen, aber Sie werden niemals in der Lage sein, den Quellcode der Funktion aus der Build-Binärdatei abzurufen .

Das obige ist der detaillierte Inhalt vonKonvertieren Sie func in einen String in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage