Dada una función, ¿es posible obtener su nombre? Decir:
func foo() {
}
func GetFunctionName(i interface{}) string {
// ...
}
func main() {
// Will print "name: foo"
fmt.Println("name:", GetFunctionName(foo))
}
Me dijeron que runtime.FuncForPC ayudaría, pero no entendí cómo usarlo.
go
reflection
go-reflect
moraes
fuente
fuente
GetFunctionName
podría devolver el mismo nombre para diferentes funciones?No es exactamente lo que desea, porque registra el nombre del archivo y el número de línea, pero así es como lo hago en mi biblioteca Tideland Common Go ( http://tideland-cgl.googlecode.com/ ) usando el paquete "runtime":
fuente