6.2 代码结构
在编译器主函数内,处理初始化任务的代码紧跟着语法分析与类型检查之后,其代码片段如下:
处理初始化任务的代码位于包 pkginit
与 staticinit
中,总共涉及到三个文件:
cmd/compile/internal/pkginit/init.go
处理初始化代码的主逻辑,即上面代码中的函数pkginit.Task()
即在该文件中cmd/compile/internal/pkginit/initorder.go
处理全局变量赋值语句,根据其相互关系确定初始化顺序cmd/compile/internal/staticinit/sched.go
判断赋值语句是动态执行(运行时)还是静态执行(编译时),如果是后者则完成初始化操作
最后更新于