我对HTTP包中的这段代码感到困惑:
type HandlerFunc func(ResponseWriter, *Request)
func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) {
f(w, r)
}
为什么该ServeHTTP方法与它的类型具有完全相同的签名-有什么意义?
经过测试,我发现如果我将随机函数(foo)传递给HandlerFunc:
var bar = HandlerFunc(foo)
bar成为HandlerFuncwithfoo作为其ServeHTTP方法的实例。现在,我对这到底是如何工作感到非常困惑。
如果我在一个类型上有多个方法,那么我如何知道将要附加到新实例的哪个方法以及其名称或顺序呢?
相关分类