init

init 函数#


作用#

  • 初始化不能采用初始化表达式初始化的变量
  • 程序运行前的注册
  • 实现 sync.Once 功能

特点#

  • init 函数先于 main 函数自动执行
  • init 不能被其他函数调用
  • init 函数没有输入参数、返回值
  • 每个包可以有多个 init 函数
    • 包的每个源文件也可以有多个 init 函数
  • 同一个包的 init 执行顺序,golang 没有明确定义,编程时要注意程序不要依赖这个执行顺序
  • 不同包的 init 函数按照包导入的依赖关系决定执行顺序

问答#

只想调用该包的 init 函数,不使用包导出的变量或者方法#

import _ "net/http/pprof"

执行上述导入后,init 函数会启动一个异步协程采集该进程实例的资源占用情况,并以 http 服务接口方式提供给用户查询。


参考#