golang检查结构是否实现对应interafce方法,var
2021-05-11 本文已影响0人
哆啦在这A梦在哪
gin框架的gin.go : 238行的一句代码
var _ IRouter = &Engine{}
直接的理解是新申明一个“忽略”的字段,类型为IRouter(这个是inerface),并且把一个空的接Engine结构赋值给他。
这里不明白这句话的作用。查看资料后明白。
IRouter这个interface里面包含的方法太多了,为了防止Engine在实现这些方法的时候出现意外,比如少一个,或者写错,有时候很难发现。加上这个就能直接检查,如果没有按照这个interface的方法实现,就直接编译出错,很直接的检查方法