智慧交通 App 开发如何提升城市交通管理与用户出行体验
811
2022-11-30
Go init 初始化函数
main 包与 init 函数
main函数也常常写在main包里面,在其他地方不写。
init 函数
init 函数是初始化包使用,无返回值,无参数。建议每个包只定义一个。init 函数在 import
包时自动被调用(const->var->init)。
初始化函数就是在导入包的时候执行的
_用来做初始化导入的
可以看到main里面什么都没有,但是却打印了init函数里面的语句。
程序执行的时候加载main包,main里面再去加载其他的,在main里面从上到下加载程序,先去加载程序,在加载程序的时候发现import了,这个时候要去找import包并且进行加载。
在找到包进行加载的时候也会从上到下依次进行加载,如果包里面有import那么还会去加载其他的。因为一个包下面有很多go文件,所以在加载的时候会把这些文件都加载进来。加载完之后会看一下有哪些init函数,然后执行所有的init函数,执行完所有init那么第一个import导入工作就算完成了。
import完之后就会执行main函数的加载,如果main包中还有init函数那么也先执行init函数初始化,执行完之后才会执行main函数。(一个包里面可以包含多个init函数)
如果有在一个包下面有多个go文件,里面都有init这个函数,那么执行顺序是随机的。
init可以用在比如后面和数据库相关的时候,将连接初始化一下,同时初始化一些驱动也是这个原理。
后面还有很多包使用下划线_来导入的,其实就是执行一下包里面的init函数。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~