我可以打印分配给变量的函数的名称吗?

有没有办法将[分配给变量]的函数的名称Printf?


从游乐场出发:


func hello(name string) string {

    return fmt.Sprintf("Hello, %s", name)

}


func main() {

    testFunc := hello

    fmt.Println(testFunc("DoubleNNs"))

    fmt.Printf("%v", testFunc)

}


/*

Output:

./prog.go:14:2: Printf format %v arg testFunc is a func value, not called

Go vet exited.


Hello, DoubleNNs

0x499200

Program exited.

*/

我找到了指导如何打印被调用函数名称的答案,但不要获取任意函数的字符串表示形式。


梦里花落0921
浏览 62回答 1
1回答

收到一只叮咚

可以使用反射包来获取函数,然后将其传递给运行时。用于获取有关函数的信息。uintptrruntime.FuncForPC(reflect.ValueOf(testFunc).Pointer()).Name()https://play.golang.org/p/T3pmjd6ds1i
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go