关于:http包疑问

golwei · 2017-10-23 14:05:09 · 1211 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-10-23 14:05:09 的主题,其中的信息可能已经有所发展或是发生改变。

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

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1211 次点击  
加入收藏 微博
7 回复  |  直到 2017-10-24 06:45:51
polaris
polaris · #1 · 8年之前

http 包有一个 Handler 接口的实现类型:ServeMux,而 http.HandleFunc 默认使用 DefaultServeMux 处理。稍微跟一下源码就知道怎么回事了。

golwei
golwei · #2 · 8年之前

那http.ListenAndServe是怎么访问到DefaultServeMux的.

golwei
golwei · #3 · 8年之前

mux没传给 listener啊.

polaris
polaris · #4 · 8年之前

文档都明确说明了,没传给 listen ,就会使用默认的 DefaultServeMux

golwei
golwei · #5 · 8年之前

了解了.http会初始化一个默认路由表DefaultServeMux.

golwei
golwei · #6 · 8年之前

var defaultServeMux ServeMux 这个语句会分配内存空间,之前理解是定义(其实初始化零值)......搞死了自己

fanshufen001
fanshufen001 · #7 · 8年之前
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传