在beego的框架中,看见了如下的代码:
import (
_ "quickstart/routers"
"github.com/astaxie/beego"
)
不懂在“quickstart/routers”前加上_是什么意思?语法上做什么解释呢?
有疑问加站长微信联系(非本文作者)

在beego的框架中,看见了如下的代码:
import (
_ "quickstart/routers"
"github.com/astaxie/beego"
)
不懂在“quickstart/routers”前加上_是什么意思?语法上做什么解释呢?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
只要 quickstart/routers 的副作用,也就是执行该包的 init 方法,但本包并不需要引用 routers 的东西
前面加""是占位符的意思,如果前面不加""的话,代码中一定要调用routers包里面的东西,否则的话,编译会出错。
_ "quickstart/routers" 这句话的真实意思是本代码中,不引用routers包里面的东西,但是会调用routers包里面的init方法,也就是说,这句话就是隐含的调用一下routers中的init方法
那这个init方法什么时候调用呢?main()之前?
import 包的时候 调用,全局变量也是
四楼说的对@ckrissun,四楼基础扎实啊!
这点还是没想通,对编译器来说,import是静态的还是动态的?如果import类似include,是静态预处理时展开,那么顶多就是定义了init函数,但main里面没有调用啊;如果import是动态的,它需要做什么呢?
建议看下这篇文章,讲的很清楚,而且有图 http://blog.csdn.net/rznice/article/details/18987047