编辑
2023-11-11
后端
00
请注意,本文编写于 546 天前,最后修改于 546 天前,其中某些信息可能已经过时。

Go语言的init函数是一个特殊的函数

  1. init函数在每个包完成初始化后自动执行,并且执行优先级比main函数高。
  2. 每个包可以有多个init函数,它们按照定义的顺序依次执行。
  3. 同一个包中不同文件的init函数执行顺序是按照文件名字符串比较的顺序执行。
  4. 不同包的init函数执行顺序是按照包导入的依赖关系决定的,先执行被依赖的包的init函数,最后执行main函数。
  5. init函数不能被其他函数调用,它会在main函数执行之前自动被调用。

init函数通常用于以下几个方面:

  1. 对变量进行初始化:可以在init函数中对包级别的变量进行初始化操作。
  2. 检查/修复程序的状态:可以在init函数中检查程序的状态,并进行必要的修复操作。
  3. 注册:可以在init函数中注册一些需要在程序运行前完成的操作,例如注册数据库连接、注册路由等。
  4. 运行一次计算:可以在init函数中执行一些只需要运行一次的计算操作,例如生成一些静态数据等。

init函数不能被显式调用,它会在程序运行前自动执行。另外,如果在init函数中使用了println()或print()函数,它们的执行顺序可能不会按照预期,因此在正式环境中不推荐使用这些函数。


Learn more:

  1. 五分钟理解golang的init函数 - 知乎
  2. Init函数和main函数 · Go语言中文文档
  3. Go init函数详解_go init函数原理-CSDN博客

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!