Go适配器 发表于 2018-06-06 函数适配器12345678910111213141516171819package mainimport "net/http"type Adapter func(http.ResponseWriter, *http.Request)func (a Adapter) ServeHTTP(w http.ResponseWriter, r *http.Request) { a(w, r) //在这个例子中a 等于handler w和r是传入的值}func main() { http.Handle("/", Adapter(handler)) //http.Handle第二个参数要求实现http.Handle 通过Adapter(handler)将handler转为Adapter类型 又由于Adapter类型实现了http.Handler 所以此时handler也实现了http.Handler http.ListenAndServe(":8000", nil)}func handler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) w.Write([]byte("nihao"))}