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

Konvertieren Sie func in einen String in Golang

王林
王林nach vorne
2024-02-10 11:30:19764Durchsuche

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
}

Das erwartete Ergebniszeichenfolgenliteral lautet wie folgt:

resultstr := `func(orgid int64) bool {
    return false
}`

Das habe ich versucht:

testfuncstr := reflect.valueof(testfunc).string()

Aber das bringt mir nur den folgenden Text:

"<func(int64) bool Value>",

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Go-Modul mit mehreren PfadenNächster Artikel:Go-Modul mit mehreren Pfaden