我有一个func注册表,但我不知道如何在其上调用HTTP函数。
registry := map[string]func(){
"MyFunc1": MyFunc1,
}
registry["MyFunc1"]()
func MyFunc1(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hi Gorilla!"))
}
我将它们改为:
registry := map[string]func(http.ResponseWriter, *http.Request){
"MyFunc1": MyFunc1,
}
但我现在不能打电话给它!
gorilla.HandleFunc("/", registry["MyFunc1"]()).Name(parentKey)
答案 0 :(得分:1)
来自文档,HandleFunc
需要func(http.ResponseWriter, *http.Request)
类型。
但是,您的代码中有一个拼写错误,因为您没有将该函数作为参数提供,您正在调用它:
将部分registry["MyFunc1"]()
更改为registry["MyFunc1"]