在某项目中的文件结构如下,a,b,c,d,e 中均有使用 init 函数,其中 c 中的 init 函数负责将初始化其他几个文件中初始化相关的逻辑,但是在实际测试中发现,d,e 中的初始化已经运行,但其数据迟迟不能被加载,只有 c 前的 a,b 中的数据能够顺利被加载。在经过多次测试后推测,Go 中的 init 执行是存在先后顺序,于是将 c 名称改为 z ,排在 a,b,d,e 之后,则发现原本不能被加载的 d,e 中的数据成功加载。
├── a.go
├── b.go
├── c.go
├── d.go
└── e.go
建议之后有类似需求的项目,可以将 c 文件单独放到放置或将其放到 main 中。