在函数注册表中调用HTTP func

时间:2016-05-23 09:38:32

标签: go

我有一个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)

1 个答案:

答案 0 :(得分:1)

来自文档,HandleFunc需要func(http.ResponseWriter, *http.Request)类型。

但是,您的代码中有一个拼写错误,因为您没有将该函数作为参数提供,您正在调用它:

将部分registry["MyFunc1"]()更改为registry["MyFunc1"]