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

Convertir une fonction en chaîne dans Golang

王林
Libérer: 2024-02-10 11:30:19
avant
778 Les gens l'ont consulté

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
}
Copier après la connexion

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

resultstr := `func(orgid int64) bool {
    return false
}`
Copier après la connexion

Voici ce que j'ai essayé :

testfuncstr := reflect.valueof(testfunc).string()
Copier après la connexion

Mais cela ne me donne que le texte suivant :

"<func(int64) bool Value>",
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal