Maison >développement back-end >Golang >Convertir une fonction en chaîne dans Golang

Convertir une fonction en chaîne dans Golang

王林
王林avant
2024-02-10 11:30:19768parcourir

golang 中将 func 转换为字符串

l'éditeur php Xigua vous présentera comment convertir une fonction en chaîne en golang dans cet article. Dans Golang, la conversion de func en chaîne peut rencontrer certains défis car le type func ne prend pas directement en charge la conversion en chaîne dans golang. Cependant, nous pouvons atteindre cet objectif en utilisant la fonction de réflexion, ainsi que d'autres techniques. Ensuite, nous présenterons en détail comment réaliser ce processus de conversion dans Golang afin que vous puissiez mieux comprendre et appliquer cette technologie. Nous allons jeter un coup d'oeil!

Contenu de la question

J'ai quelques fonctions enregistrées dans des variables que je dois convertir en chaînes littérales :

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

Le littéral de chaîne de résultat attendu est le suivant :

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

Voici ce que j'ai essayé :

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

Mais cela ne me donne que le texte suivant :

"<func(int64) bool Value>",

Workaround

Comme @BurakSerdar l'a dit - Go n'est pas un langage interprété, mais un langage compilé, donc ce que vous pouvez faire est assez limité. reflect est un package puissant - vous pouvez obtenir le nom de la fonction, le nombre d'arguments de la fonction et même la pile d'appels (ce qui est pratique pour la journalisation), mais vous ne pourrez jamais obtenir le code source de la fonction à partir du binaire de construction. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer