转到功能键入

我对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方法的实例。现在,我对这到底是如何工作感到非常困惑。


如果我在一个类型上有多个方法,那么我如何知道将要附加到新实例的哪个方法以及其名称或顺序呢?


倚天杖
浏览 214回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go