对于下面的代码片段(可通过 Go Playground 运行),
package main
import (
"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在函数名的末尾有一个?
摇曳的蔷薇
相关分类