func main() {
http.HandleFunc("/hello", hello)
http.ListenAndServe("", nil)
}
这两条语句是怎么产生联系的.mux路由表通过什么方法访问?是在main()主线程空间生成了什么对象吗?
执行完http.HandleFunc("/hello", hello)函数没人返回任何对象.
是不是通过hello(handlerfunc)传进去的 *http.request产生联系的?如果是.在main空间怎么访问到*http.request.
有疑问加站长微信联系(非本文作者)

http
包有一个Handler
接口的实现类型:ServeMux,而http.HandleFunc
默认使用DefaultServeMux
处理。稍微跟一下源码就知道怎么回事了。那http.ListenAndServe是怎么访问到DefaultServeMux的.
mux没传给 listener啊.
文档都明确说明了,没传给 listen ,就会使用默认的 DefaultServeMux
了解了.http会初始化一个默认路由表DefaultServeMux.
var defaultServeMux ServeMux 这个语句会分配内存空间,之前理解是定义(其实初始化零值)......搞死了自己
看完这篇文章,你就会差不多了https://github.com/k2huang/blogpost/tree/master/golang/%E6%A0%87%E5%87%86%E5%BA%93/http%E5%8C%85%E5%9F%BA%E7%A1%80#%B6%FE-%CA%B9%D3%C3nethttp%B4%EE%BD%A8%D2%BB%B8%F6%D7%EE%BC%F2%B5%A5%B5%C4http-server