程序的初始化和执行都起始于 main 包。如果 main 包还导入了其它的包,那么就会在编译时将它们依次
导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用到 fmt 包,但
它只会被导入一次,因为没有必要导入多次)。当一个包被导入时,如果该包还导入了其它的包,那么
会先将其它包导入进来,然后再对这些包中的包级常量和变量进行初始化,接着执行 init 函数(如果
有的话),依次类推。等所有被导入的包都加载完毕了,就会开始对 main 包中的包级常量和变量进行
初始化,然后执行 main 包中的 init 函数(如果存在的话),最后执行 main 函数。

golang中的init函数
R R2024-11-17 16:36
相关推荐
codeejun18 分钟前
每日一Go-70、Prometheus + Grafana 从采集到告警的完整实战(Go + Kind)会编程的土豆19 分钟前
Go 里 interface 为什么能比较?到底在比什么?GDAL1 小时前
在 Windows 上做 Go 跨平台编basketball6161 小时前
Golang:基础语法总结会编程的土豆1 小时前
Go 里的 init() 到底是什么(彻底理解)鹏北海-RemHusband12 小时前
Go 语言进阶笔记 — 面向 JS/TS 前端开发者Starry-sky(jing)21 小时前
Hermes Agent 接入 Qwen3.7-Max 报 401?OpenCode Go 模型路由源码级排查与修复鹏北海-RemHusband21 小时前
Go 语言基础笔记 — 面向 JS/TS 前端开发者鹏北海-RemHusband1 天前
Go 包管理笔记 — 面向 JS/TS 前端开发者jieyucx1 天前
Go 语言 JSON 序列化/反序列化:Tag 用法完全指南