求教,关于Init的执行顺序

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

大家好,我当前的项目目录大概是,main.go在项目文件夹下,与其并列的有conf和routers文件夹,在这两个文件夹中分别有app.go和router.go两个文件。 app.go的职能是初始化数据库和初始化gin的router,是全局变量,对包外可见。 我本来想的是在router.go里做路由匹配。所以在这两个文件当中,我都加了init方法,但是为什么程序只走app.go里的init,不走router.go里的呢?我在main.go里调用了Run 方法(这个方法在app.go里,主要是开始serverandlisten,添加端口)。但是真的不理解为什么router.go里的init不会被执行。


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

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

1549 次点击  
加入收藏 微博
4 回复  |  直到 2017-10-27 12:31:56
czxichen
czxichen · #1 · 7年之前

语言import

channel
channel · #2 · 7年之前

确定 routers 这个包有被 import 吗?

oscarzhou
oscarzhou · #3 · 7年之前

@czxichen 哈哈,确实是这个的原因。谢谢啦

oscarzhou
oscarzhou · #4 · 7年之前
channelchannel #2 回复

确定 routers 这个包有被 import 吗?

哈哈,因为main.go里没用到routers包,所以就没有引,通过这个,才真正理解了带 “_” 这种导入的原因。

import(
    "github.com/jinzhu/gorm"
     _  "github.com/jinzhu/gorm/dialects/sqlite"
)

谢谢呀!!!

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