Golang init 函数

优质
小牛编辑
140浏览
2023-12-01

golang 里面有两个保留的函数:

  • init 函数(能够应用于所有的 package)
  • main 函数(只能应用于 package main)
  • 这两个函数在定义时不能有任何的参数和返回值

go 程序会自动调用 init() 和 main(),所以你 不能 在任何地方调用这两个函数

package main 必须包含一个 main 函数,但是每个 package 中的 init 函数都是可选的

一个 package 里面可以写任意多个 init 函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个 package 中每个文件只写一个 init 函数

单个包中代码执行顺序如下

  • main包-->常量-->全局变量-->init函数-->main 函数-->Exit
package main
import  "fmt"
const constValue  = 998 // 1
var gloalVarValue int = abc() // 2
func init() { // 3
	fmt.Println("执行main包中main.go中init函数")
}
func main() { // 4
	fmt.Println("执行main包中main.go中main函数")
}
func abc() int {
	fmt.Println("执行main包中全局变量初始化")
	return 998
}

多个包之间代码执行顺序如下

init 函数的作用

  • init 函数用于处理当前文件的初始化操作,在使用某个文件时的一些准备工作应该放到这里