golang函数类型Function Types
Function types
A function type denotes the set of all functions with the same parameter and result types. The value of an uninitialized variable of function type is nil.
函数类型(function types)是一种特殊的类型,它表示着所有拥有同样的入参类型和返回值类型的函数集合。
参考http的实现,定义了一个HandlerFunc
的函数类型
type HandlerFunc func(ResponseWriter, *Request)
一个函数只要满足这些特征,那么它就可以通过如下方式将该函数转换成 HandlerFunc类型
helloHandler := func(writer http.ResponseWriter, request *http.Request) {
_, _ = fmt.Fprint(writer, "Hello World")
}
//将函数转化为函数类型
handlerFunc := http.HandlerFunc(helloHandler)
在http的实现中,函数类型HandlerFunc
充当了一个适配器的作用,适配http中的Handler
接口
type HandlerFunc func(ResponseWriter, *Request)
// ServeHTTP calls f(w, r).
func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) {
f(w, r)
}