简单用例
mux := http.NewServeMux()
mux.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
writer.Write([]byte("ok"))
})
if err := http.ListenAndServe(":8080", mux); err != nil {
log.Fatal("err=",err.Error())
}
打开浏览器,输入localhost:8080
会看到ok
聊聊 http.NewServeMux
http.NewServeMux 返回的类型是*http.ServeMux
type ServeMux struct {
mu sync.RWMutex
m map[string]muxEntry
hosts bool // whether any patterns contain hostnames
}
type muxEntry struct {
h Handler
pattern string
}
可以看到ServeMux 主要是保存路由信息(路径和处理函数),所以被称为多路复用器,类似路由