社区
其他技术讨论专区
帖子详情
关于init函数的执行
weixin_38052463
2019-09-20 10:40:13
为什么在init函数初始化server时是空的,然而在调用的时候却是有数据的,其中conf.GetWsServer()是读取配置文件中的数据,对server初始化的方法。求大神帮解析一下这个过程!!!
...全文
207
6
打赏
收藏
关于init函数的执行
为什么在init函数初始化server时是空的,然而在调用的时候却是有数据的,其中conf.GetWsServer()是读取配置文件中的数据,对server初始化的方法。求大神帮解析一下这个过程!!!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38066102
2019-09-20
打赏
举报
回复
像我这种情况,server是要在项目的整个流程都要用的,只能初始化一次,有什么好的方法推荐吗
weixin_38066919
2019-09-20
打赏
举报
回复
初始化当然只有一次啊…… 你要整理下顺序。 一般来说,代码的执行顺序是这样的 各个package的init函数 main函数 main函数调用的函数。 从我的角度来看,你应该在man函数里发起调用初始化的函数。 以我自己的代码为例,大概是这样的: main函数:
模块的启动函数
weixin_38068785
2019-09-20
打赏
举报
回复
好,明白了,谢谢
weixin_38057020
2019-09-20
打赏
举报
回复
一般除非做过赋值,init时变量当然是空的啊…… init不是做这个事情的。 init在包引入的时候执行的,在main函数执行之前的。 你需要自己有一套合适的初始化流程
weixin_38059644
2019-09-20
打赏
举报
回复
其他地方还有对server做改动的操作吗,只能说init后server的确还是空的,但init到你getWsServer之间有什么操作就不知道了。
weixin_38060280
2019-09-20
打赏
举报
回复
只有在init调用的那个方法里初始化了,其他地方没有改动
一文读懂 Golang
init
函数
执行
顺序
Golang
init
函数
是一种特殊的
函数
,主要用于完成程序的初始化工作,如初始化数据库的连接、载入本地配置文件、根据命令行参数初始化全局变量等。
init
a
init
b
init
cmain
init
函数
是可选的,可以没有;与 main
函数
一样,不能有入参与返回值;与 main
函数
一样,
init
会自动
执行
,不能被其他
函数
调用;一个包内可以有多个
init
函数
,即可以在包的多个源文件中定义多个
init
函数
。
go 语言中
init
()
函数
是什么时候
执行
的?
在 golang 中,
init
()
函数
是在main()
函数
之前
执行
的。全局常量、变量是在
init
函数
之前初始化的。Go语言代码
执行
顺序为:import –> const –> var –>
init
()–>main()。
Go语言中的
init
函数
的
执行
时机
先
执行
pkg1的
init
,因为在main中被最先引入,优先按照import的顺序
执行
,接着是pkg3的
init
, 接着是pkg2的
init
。因为 pkg3被pkg2引用,这样pkg3的
init
优先于pkg2的
init
执行
。测试 同一个 Go 文件可以重复定义多个
init
方法。2.1 测试同一个包中,不同的文件中的
init
执行
顺序。最后是main包中的
init
和main
函数
的方法。测试 导入不同的包有和没有依赖其他包的情况。
golang学习笔记——
init
()
函数
是什么时候
执行
的
init
()
函数
是 Go 程序初始化的一部分。Go 程序初始化先于 main
函数
,由 runtime 初始化每个导入的包,初始化顺序不是按照从上到下的导入顺序,而是按照解析的依赖关系,没有依赖的包最先初始化。每个包首先初始化包作用域的常量和变量(常量优先于变量),然后
执行
包的
init
()
函数
。同一个包,甚至是同一个源文件可以有多个
init
()
函数
。
init
()
函数
没有入参和返回值,不能被其他
函数
调用,同一个包内多个
init
()
函数
的
执行
顺序不作保证。
[Go] go中
init
函数
的
执行
顺序
只要导入了包 , 那么该包的
init
函数
就会
执行
,
执行
的顺序和优先级为下面这种图 有点类似
函数
栈 , 先
执行
最后导入包的
init
函数
其他技术讨论专区
479
社区成员
790,917
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章