Golang 的 Gin 框架 Engine 与 IRouter 的关系分析

简言之,IRouter 是一个接口,而 Engine 实现了它。因此 Engine 算是 IRouter 的一个实例。

分析如下,参考链接:https://godoc.org/github.com/gin-gonic/gin#RouterGroup

首先在该链接中找到 type IRouter,可知 IRouter 为 interface,有一个成员函数 Group 且嵌入了 IRoutes。
Golang 的 Gin 框架 Engine 与 IRouter 的关系分析_第1张图片

可看出, IRoutes 也是一个接口,定义了 HTTP 方法。

再找到 Engine,可发下它嵌入了 RouterGroup,
再找到 RouterGroup 可知,该类实现了 IRouter 的所有方法,
由此可知 Engine 属于 IRouter 的一个实例。

关于 Golang 类型嵌入可参考:https://docs.hacknode.org/gopl-zh/ch6/ch6-03.html

你可能感兴趣的:(golang)