1.导入顺序及初始化顺序
下图展示了程序启动后导入包的顺序及初始化的顺序。
- 导入顺序:导入包从main包开始,依次导入被引用的pkg1、pkg2、pkg3包。
- 初始化顺序:与导入顺序相反,最后被导入的最先被初始化。pkg3、pkg2、pkg1、main
- 每个包初始化顺序:每个文件初始化顺序都是常量、变量、init函数。如果包里有多个文件,按照文件名“从小到大”排序顺序执行。
注意事项:
- 一个包被其它多个包 import,但只能被初始化一次
- 避免出现循环 import,例如:A –> B –> C –> A
参考资料
https://blog.csdn.net/claram/article/details/77745665
https://chai2010.gitbooks.io/advanced-go-programming-book/content/ch1-basic/ch1-04-func-method-interface.html