Go 应该返回Handler的函数如何返回HandlerFunc?
链接处理程序时,函数的返回类型为Handler,但它实际上返回HandlerFunc。这不会引发任何错误 如何接受HandlerFunc代替处理程序,前者是函数类型,后者是接口类型Go 应该返回Handler的函数如何返回HandlerFunc?,go,Go,链接处理程序时,函数的返回类型为Handler,但它实际上返回HandlerFunc。这不会引发任何错误 如何接受HandlerFunc代替处理程序,前者是函数类型,后者是接口类型 func log(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ... }) } 是一个接口。是实现该接口的具体类型。这些都记录在文档中。如果
func log(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
...
})
}
是一个接口。是实现该接口的具体类型。这些都记录在文档中。如果接口对您来说是新的,那么从开始
HandlerFunc类型是允许使用普通
用作HTTP处理程序。如果f是一个具有适当
签名HandlerFunc(f)是调用f的处理程序
http.Handler是一个接口:
type Handler interface {
ServeHTTP(ResponseWriter, *Request)
}
http.HandlerFunc是一种类型:
type HandlerFunc func(ResponseWriter, *Request)
// ServeHTTP calls f(w, r).
func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) {
f(w, r)
}