對于下面的代碼片段(可通過 Go Playground 運行),package mainimport ( "fmt" "net/http" "reflect" "runtime")type User struct{}var u = &User{}func (_ User) DummyHandler(w http.ResponseWriter, r *http.Request) {}func funcName(i interface{}) { p := reflect.ValueOf(i).Pointer() n := runtime.FuncForPC(p).Name() fmt.Println(n)}func main() { funcName(u.DummyHandler)}輸出是main.(User).DummyHandler-fm。為什么-fm在函數(shù)名的末尾有一個?
為什么在 Go 中獲取函數(shù)名稱時有“-fm”后綴?
拉風(fēng)的咖菲貓
2021-11-08 19:31:57