本文公众号文章链接:https://mp.weixin.qq.com/s/LLcPDPtpjNeXAA_ffL3YCg
本文csdn博客链接:http://blog.youkuaiyun.com/screscent/article/details/79642534
Gorilla是一个go语言的web工具箱,包含了很多的模块。本文分析的模块gorilla/mux: is a powerful URL routerand dispatcher.
源码目录:
一共有4部分,context,mux,regex,route。其中regex不讲解,对这部分感兴趣的可以自己去看。
一、 context
这部分代码比较简单,先将这部分代码讲解下。
Context源码分为两个模式,一个是gorilla自带的context,一个是系统自带的native。提供的接口都是一样的。
github.com/gorilla/mux/context_gorilla.go
源码为!go1.7版本的时候,会编译此版本
源码很简单,提供了三个函数,contextGet、contextSet、contextClear。
这三个函数都是对gorilla/context进行了一下封装而已。代码简单,从函数名就能够知道其含义,就不做过多讲解。
github.com/gorilla/mux/context_native.go
当为go1.7版本的时候,会编译此版本。
同样的是三个函数,只是里面封装的是标准库。
二、 mux
mux是整个模块的入口。一般的用法如下
funcmain