我在变量中保存了一些函数,我需要将其转换为字符串文字:
testfunc := func(orgid int64) bool { return false }
预期结果字符串文字如下:
resultstr := `func(orgid int64) bool { return false }`
这是我尝试过的:
testfuncstr := reflect.valueof(testfunc).string()
但是这只能让我得到以下文字:
"<func(int64) bool Value>",
正如 @BurakSerdar 所说 - Go 不是一种被解释的语言,而是一种被编译的语言,所以你能做的事情相当有限。 reflect
是一个功能强大的包 - 你可以获取函数名称、函数参数数量,甚至调用堆栈(这对于日志记录来说很方便),但是您将永远无法从构建二进制文件中获取函数的源代码。