如何扩展现有结构?

时间:2016-04-07 22:02:31

标签: go

我想扩展http.Request结构以包含url中存在的参数。我知道像大猩猩这样的优秀图书馆已经做到了这一点,但我想了解它是如何在螺母和螺栓水平上完成的。

以下是我正在尝试做的一个例子:

// server.go

func Vars(r *http.Request) map[string]string {
    var args map[string]string
    args = make(map[string]string)
    s := r.URL.Path.split('/')[1:]
    for str := range s {
        _, arg, _ := regexp.MatchString("\{\w+\}", str)
        append(args, arg)
    }

    return args
}

httpMock.HandleFunc("/myurl/{arg1}/", MyHandler)

func MyHandler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Success! " + r.Vars()["arg1"]))
}

但是我得到一个超出范围异常的索引。任何人都可以帮我弄清楚如何做到这一点吗?

0 个答案:

没有答案