Можно ли получить имя для данной функции? Сказать:
func foo() {
}
func GetFunctionName(i interface{}) string {
// ...
}
func main() {
// Will print "name: foo"
fmt.Println("name:", GetFunctionName(foo))
}
Мне сказали, что runtime.FuncForPC поможет, но я не понял, как его использовать.
go
reflection
go-reflect
Мораес
источник
источник
GetFunctionName
может возвращать одно и то же имя для разных функций?Не совсем то, что вы хотите, потому что он регистрирует имя файла и номер строки, но вот как я это делаю в своей библиотеке Tideland Common Go ( http://tideland-cgl.googlecode.com/ ) с помощью пакета runtime:
источник