Go init 初始化函数

网友投稿 829 2022-11-30

Go init 初始化函数

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小时内删除侵权内容。

上一篇:PromQL 集合操作 一对多/多对多向量
下一篇:计算机网络 网络层 外部网关协议BGP
相关文章

 发表评论

暂时没有评论,来抢沙发吧~