Diberikan sebuah fungsi, apakah mungkin untuk mendapatkan namanya? Mengatakan:
func foo() {
}
func GetFunctionName(i interface{}) string {
// ...
}
func main() {
// Will print "name: foo"
fmt.Println("name:", GetFunctionName(foo))
}
Saya diberi tahu bahwa runtime.FuncForPC akan membantu, tetapi saya gagal memahami cara menggunakannya.
go
reflection
go-reflect
moraes
sumber
sumber
GetFunctionName
mungkinkah mengembalikan nama yang sama untuk fungsi yang berbeda?Tidak persis seperti yang Anda inginkan, karena ini mencatat nama file dan nomor baris, tetapi inilah cara saya melakukannya di Perpustakaan Tideland Common Go saya ( http://tideland-cgl.googlecode.com/ ) menggunakan paket "runtime":
sumber