idea_go

第 11210 号会员 /

回复了 yeelone 创建的主题: 如何理解Go的 type func

查看源码中如下代码
net/http/server.go#1999
// The HandlerFunc type is an adapter to allow the use of
// ordinary functions as HTTP handlers. If f is a function
// with the appropriate signature, HandlerFunc(f) is a
// Handler that calls f.
type HandlerFunc func(ResponseWriter, *Request)

// ServeHTTP calls f(w, r).
func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) {
f(w, r)
}

HandlerFunc 对象自己实现了ServeHTTP 接口,然后调用了一下f(w, r)方法,算是将目标函数转换成ServeHTTP 接口函数