Dada uma função, é possível obter seu nome? Dizer:
func foo() {
}
func GetFunctionName(i interface{}) string {
// ...
}
func main() {
// Will print "name: foo"
fmt.Println("name:", GetFunctionName(foo))
}
Disseram-me que o runtime.FuncForPC ajudaria, mas não consegui entender como usá-lo.
go
reflection
go-reflect
moraes
fonte
fonte
GetFunctionName
pode retornar o mesmo nome para funções diferentes?Não é exatamente o que você quer, porque ele registra o nome do arquivo e o número da linha, mas aqui está como eu faço isso na minha biblioteca Tideland Common Go ( http://tideland-cgl.googlecode.com/ ) usando o pacote "runtime":
fonte